excel导入数据库php代码

2025-03-13 18:26:06
推荐回答(1个)
回答1:

我也一直想写个直接操纵EXCEL的程序,我喜欢用PHP处理各类数据,以前对基层单位上报数据我都是全选、复制、粘贴的方法,在PHP或者数据库里面处理,一直没心思去写代码,今天看了你的帖子,网上搜索了几分钟,写了下面的程序,程序我这里是已经调试通过了的,你运行一下试试看:

//申明对象
$excel = new COM("Excel.sheet") or Die ("Did not instantiate Excel");// 建立EXCEL的COM对象
//打开一个工作簿
$pathin = "d:/temp/文件/";
$workbook = "成本中心编码.xls";
$wkb = $excel->application->Workbooks->Open($pathin.$workbook) or Die ("Did not open $pathin $workbook");
//枚举工作表
$n=$wkb->Worksheets->Count;
echo "总共 $n 个工作表:\n";
for($i=1;$i<$n;$i++) echo $wkb->Worksheets($i)->Name,"\n";
//打开第一工作表并显示前10行内容
$sheet = $wkb->Worksheets(1);
$i=1;
while ($i<10){
$j=1;
do {
$v = $sheet->cells($i,$j);//行和列直接用十进制数表示
$j++;
echo $v;
} while ($v!='');
$i++;
echo "\n";
}
?>

如果你调试通过,你描述的问题就很容易了,完全可以打开EXCEL枚举所有工作表,并把内容保存到数据库,在我上面例子的基础上写代码既可,对你应该没有难度。

说明一、打开的文件名要使用全路径,PHP文件当前目录也是一样,好像不指定文件夹默认打开“我的文档”。

说明二、代码里面选择第一个工作表使用的是$wkb->Worksheets(1)语句,枚举所有工作表使用$wkb->Worksheets($i)既可,但是如果打开知道名字的表,那就直接使用名字作为参数,例如$wkb->Worksheets("sheet1")打开sheet1表。