如何用thinkphp实现将excel数据导入到mysql中

如何用thinkphp实现将excel数据导入到mysql中,第1张

首先需要在mysql管理工具上面新建一个表,也可以用mysql命令创建,表建立完成之后,需要将表中的字段名字告诉给填写excel表的人员.

打开excel表,按照程序提供的字段填写相应的数据.此时注意下面几点:名字需要跟程序提供的一样,其他的描述,表头可以不写都行.

打开工具,选择表所在的数据库,然后点击数据库名字,右键数据,出来下拉菜单选择import wizard .d出一个选择界面,选择excel file文件

点击next(下一步),选择对应的excel文件就行,然后再下面选在文件内容在哪一个sheet中,也就是内容写在excel什么地方,这点需要注意,也是关键的地方.

点击next (此步骤也是关键步骤),需要注意2点: 1:filed name row 就是字段所在excel中的位置,也就是第几行(简单办法,一般就是英文对应的那一列).2:first data row(从哪一行开始执行),数据从哪一行开始

点击next 选择 target table 目标对应的数据库,选择.

如果到上面一步没有问题的话,默认next到最后 就行了.然后打开表就能看到数据跟excel表中的一样.要导入到哪个数据库中表中

使用PHPexcel,你自己到网上搜这个插件吧,将需要的文件解压到Classes目录下,那么把这个目录放在框架thinkphp/extend/vendor/下面,我将自己项目中的部分代码给你看看

在ACTION中设置上传文件并获取文件:

import('ORG.Net.UploadFile')

$upload = new UploadFile()// 实例化上传类

$upload->maxSize = 3145728// 设置附件上传大小

$upload->allowExts = array('xls')// 设置附件上传类型

$upload->savePath = './Uploads/'// 设置附件上传目录

if(!$upload->upload()) {// 上传错误提示错误信息

$this->error($upload->getErrorMsg())

}else{// 上传成功 获取上传文件信息

$info = $upload->getUploadFileInfo()

}

$filetmpname = './Uploads/'.$info[0]['savename']

下面就需要使用phpexcel来解析

Vendor('Classes.PHPExcel')

$objPHPExcel = PHPExcel_IOFactory::load($filetmpname)

$excelarray= $objPHPExcel->getSheet(0)->toArray()

unlink($filetmpname)//删除上传的文件

//你要注意,excel表中如果从第一行的数据开始导入,那么直接按照下面的代码就可以,如果有表头之类的不需要的行,那么就是用 array_shift先删除数组中不需要的行

//循环给数据字段赋值

foreach($excelarr as $k=>$v){

$data[$k]['字段1']=$v[1]

$data[$k]['字段2']=$v[2]

$data[$k]['字段3']=$v[3]

$data[$k]['字段4']=$v[4]

$data[$k]['字段5']=$v[5]

}

上面的步骤就是获取了表格中的数据并赋值给了数组,下面就可以直接插入到数据库中了

$list=$charu=D('数据表名')->addAll($data)

非常简单吧,至于数据中的类型和验证等,自己在需要的位置设定就可以了

本文实例讲述了thinkPHP实现将excel导入到数据库中的方法。分享给大家供大家参考,具体如下: PHPExcel插件可点击此处本站下载。 这里使用的是thinkphp框架的3.1版本,下载好压缩包,框架中的extend中的vendor文件夹中新建一个名为PHPExcel的文件夹,把classes里面的内容放到里面 下面是前端页面 提示:我在测试的时候遇到报错exception 'PHPExcel_Reader_Exception' with message 'The filename 原因是由于excel的文件后缀可能不同,我的文件后缀是xlsx,然后给把他另存为了xls的文件,就可以了 <html> <head> </head> <body> <form action="{pigcms::U('Jdb/abcdefgwulisuibian')}" method="post" enctype="multipart/form-data"><input type="file" name="import"/><input type="hidden" name="table" value="tablename"/><input type="submit" value="导入"/> </form> </body> </html> 下面是php的 function abcdefgwulisuibianuplod(){$this->display()//显示页面 } function abcdefgwulisuibian(){if (!empty($_FILES)) { import("@.ORG.UploadFile")$config=array( 'allowExts'=>array('xlsx','xls'), 'savePath'=>'./Public/upload/', 'saveRule'=>'time', )$upload = new UploadFile($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程序设计有所帮助。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10012216.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存