thinkPHP实现将excel导入到数据库中的方法
本文实例讲述了thinkPHP实现将excel导入到数据库中的方法。分享给大家供大家参考,具体如下:
PHPExcel插件可点击此处本站下载。
这里使用的是thinkphp框架的3.1版本,下载好压缩包,框架中的extend中的vendor文件夹中新建一个名为PHPExcel的文件夹,把classes里面的内容放到里面
下面是前端页面
提示:我在测试的时候遇到报错exception'PHPExcel_Reader_Exception'withmessage'Thefilename
原因是由于excel的文件后缀可能不同,我的文件后缀是xlsx,然后给把他另存为了xls的文件,就可以了
<html>
<head>
</head>
<body>
<formaction="{pigcms::U('Jdb/abcdefgwulisuibian')}"method="post"enctype="multipart/form-data">
<inputtype="file"name="import"/>
<inputtype="hidden"name="table"value="tablename"/>
<inputtype="submit"value="导入"/>
</form>
</body>
</html>
下面是php的
functionabcdefgwulisuibianuplod(){
$this->display();//显示页面
}
functionabcdefgwulisuibian(){
if(!empty($_FILES)){
import("@.ORG.UploadFile");
$config=array(
'allowExts'=>array('xlsx','xls'),
'savePath'=>'./Public/upload/',
'saveRule'=>'time',
);
$upload=newUploadFile($config);
if(!$upload->upload()){
$this->error($upload->getErrorMsg());
}else{
$info=$upload->getUploadFileInfo();
}
vendor("PHPExcel.PHPExcel");
$file_name=$info[0]['savepath'].$info[0]['savename'];
$objReader=PHPExcel_IOFactory::createReader('Excel5');
$objPHPExcel=$objReader->load($file_name,$encode='utf-8');
$sheet=$objPHPExcel->getSheet(0);
$highestRow=$sheet->getHighestRow();//取得总行数
$highestColumn=$sheet->getHighestColumn();//取得总列数
for($i=2;$i<=$highestRow;$i++)//这个地方根据需要,一般第一行是名称,所以从第二行开始循环,也可以从第一行开始
{
$data['lianjieid']=$objPHPExcel->getActiveSheet()->getCell("A".$i)->getValue();//数据库字段和excel列相对应
$data['yaoqingma']=$objPHPExcel->getActiveSheet()->getCell("B".$i)->getValue();
$data['dlmima']=$objPHPExcel->getActiveSheet()->getCell("C".$i)->getValue();
$data['ljdizhi']=$objPHPExcel->getActiveSheet()->getCell("D".$i)->getValue();
M('jdb')->add($data);//插入数据库
}
$this->success('导入成功!');
}else
{
$this->error("请选择上传的文件");
}
}
更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《ThinkPHP常用方法总结》、《smarty模板入门基础教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。