PHP读取Excel的每行记录 - ~@
来源:百度文库 编辑:神马文学网 时间:2024/05/06 11:00:28
PHP读取Excel的每行记录
PHP读取Excel文件方法总结 2009-02-19 15:02:02 阅读346 评论0 字号:大中小
这是我初次接触用PHP程序来读取Excel数据,刚开始可愁了,本来也没用过,就开始上网搜索这方面的资料,网上的说法真是众多风云啊!终于苍天不负有心人,让我找到了两种方法与大家分享一下。
第一种方法是先在ACCESS中导入*.xls文件,这样就可以从ACCESS数据库中读取数据,然后插入到mysql,sql server.....其它数据库,就搞定了。(我主要是导入到MYSQL中 )
第二种方法是先把原来的*.xls文件另存为*.csv格式,然后用程序来读取*.csv的文件就搞定了。
好了,不说那么多没用的话了,直接入正题。以下是这两种方法的主要程序。
第一种方法源码:
文件名:access-mysql.php
列表
$filename = "access-mysql.php?";
$pagesize=100; //设置每一页显示的记录数
$db = 'D:\web\text\xls_php\a.mdb';
$conn = new COM('ADODB.Connection');
$conn->Open("DRIVER={Driver do Microsoft Access (*.mdb)}; DBQ=$db");
$sql = 'select count(*) from Sheet1';
$res = $conn->Execute($sql);
while (!$res->EOF)
{
$numrows = $res->Fields[0]->Value;
$res->MoveNext();
}
$pages=intval($numrows/$pagesize);
if ($numrows % $pagesize){
$pages++;}
//判断页数设置
if (isset($_GET["page"]))
{
$page=intval($_GET["page"]);
}
else{
$page=1; //否则,设置为第一页
}
//计算记录偏移量
$offset=$pagesize*($page - 1);
//读取指定记录数
$sql="select * from Sheet1";
$res = $conn->Execute($sql);
echo $res->move($offset);
if (!$res->EOF)
{
$i=0;
?>
第二种方法源码:
文件名称:insertsql.php
session_start();
error_reporting(E_ALL ^ E_NOTICE);//这是屏蔽错误信息的
$file = file('a.csv');
$num = count($file);
for($i=0;$i <$num;$i++)
{
list($id1, $id2,$id3,$id4) = explode( ', ',$file[$i],4);
//echo($id1. '
');
//echo($id2. '
');
//echo($id3. '
');
//echo($id4. '
');
//echo($id5. '
');
$id=explode(',',$id1);//print_r($id);
$id[0]=str_replace(" ","",$id[0]);
if($id[0]!="" && $id[0]!="物理编号")
{
$sql = mysql_query("select * from test.stepentry where snno='$id[0]'",$link);
//$count = mysql_num_rows($sql);
if(mysql_num_rows($sql)==0)
{
$q = "INSERT INTO test.stepentry(newid,originid,snno,stepkey,secret1,secret2,starttype,startdate,senddate,memo,fromman,toman) values ('$id[1]','','$id[0]','$id[2]','$id[3]','$id[4]','','','','$id[5]','$id[6]','$id[8]')";
echo $q."
";
mysql_query($q,$link);
}
else
{
$q = "update test.stepentry set fromman='$id[6]',toman='$id[8]' where snno='$id[0]'";
echo $q."
";
mysql_query($q,$link);
}
}
}
exit;
?>
PHP读取Excel文件方法总结 2009-02-19 15:02:02 阅读346 评论0 字号:大中小
这是我初次接触用PHP程序来读取Excel数据,刚开始可愁了,本来也没用过,就开始上网搜索这方面的资料,网上的说法真是众多风云啊!终于苍天不负有心人,让我找到了两种方法与大家分享一下。
第一种方法是先在ACCESS中导入*.xls文件,这样就可以从ACCESS数据库中读取数据,然后插入到mysql,sql server.....其它数据库,就搞定了。(我主要是导入到MYSQL中
第二种方法是先把原来的*.xls文件另存为*.csv格式,然后用程序来读取*.csv的文件就搞定了。
好了,不说那么多没用的话了,直接入正题。以下是这两种方法的主要程序。
第一种方法源码:
文件名:access-mysql.php
$filename = "access-mysql.php?";
$pagesize=100; //设置每一页显示的记录数
$db = 'D:\web\text\xls_php\a.mdb';
$conn = new COM('ADODB.Connection');
$conn->Open("DRIVER={Driver do Microsoft Access (*.mdb)}; DBQ=$db");
$sql = 'select count(*) from Sheet1';
$res = $conn->Execute($sql);
while (!$res->EOF)
{
$numrows = $res->Fields[0]->Value;
$res->MoveNext();
}
$pages=intval($numrows/$pagesize);
if ($numrows % $pagesize){
$pages++;}
//判断页数设置
if (isset($_GET["page"]))
{
$page=intval($_GET["page"]);
}
else{
$page=1; //否则,设置为第一页
}
//计算记录偏移量
$offset=$pagesize*($page - 1);
//读取指定记录数
$sql="select * from Sheet1";
$res = $conn->Execute($sql);
echo $res->move($offset);
if (!$res->EOF)
{
$i=0;
?>
$n | id | wuli | bianhao | J | P | S | title | shen | jieshou | money | content | ||||
=$n?> | =$id?> | =$snno?> | =$newid?> | =$stepkey?> | =$secret1?> | Fields["ru"]->Value!="") echo $res->Fields["ru"]->Value; else echo " ";?> | |||||||||
echo " 共有".$pages."页(".$page."/".$pages.")"; ";$first=1; $prev=$page-1; $next=$page+1; $last=$pages; if ($page>1) { echo "[首页] "; echo "[上一页] "; } if ($page<$pages) { echo "[下一页] "; echo "[尾页] "; } echo " ?> |
第二种方法源码:
文件名称:insertsql.php
session_start();
error_reporting(E_ALL ^ E_NOTICE);//这是屏蔽错误信息的
$file = file('a.csv');
$num = count($file);
for($i=0;$i <$num;$i++)
{
list($id1, $id2,$id3,$id4) = explode( ', ',$file[$i],4);
//echo($id1. '
');
//echo($id2. '
');
//echo($id3. '
');
//echo($id4. '
');
//echo($id5. '
');
$id=explode(',',$id1);//print_r($id);
$id[0]=str_replace(" ","",$id[0]);
if($id[0]!="" && $id[0]!="物理编号")
{
$sql = mysql_query("select * from test.stepentry where snno='$id[0]'",$link);
//$count = mysql_num_rows($sql);
if(mysql_num_rows($sql)==0)
{
$q = "INSERT INTO test.stepentry(newid,originid,snno,stepkey,secret1,secret2,starttype,startdate,senddate,memo,fromman,toman) values ('$id[1]','','$id[0]','$id[2]','$id[3]','$id[4]','','','','$id[5]','$id[6]','$id[8]')";
echo $q."
";
mysql_query($q,$link);
}
else
{
$q = "update test.stepentry set fromman='$id[6]',toman='$id[8]' where snno='$id[0]'";
echo $q."
";
mysql_query($q,$link);
}
}
}
exit;
?>