求关于php excel导入大数据到mysql的解决办法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求关于php excel导入大数据到mysql的解决办法相关的知识,希望对你有一定的参考价值。
如题,字段有40个,需要导入的EXCEL数据不到5万条。
有没有好的解决方法使用php 将excel导入到mysql数据库。
求php代码的实现步骤。
下载 PHPExcel
$filePath = 'D:/xxx.xlsx'; //excel 文件名
$objReader = new PHPExcel_Reader_Excel2007(); //具体查看(Documentation/Examples/Reader/exampleReader01.php)
$objPHPExcel = $objReader->load($filePath);
$sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);
$insql = 'insert into 表名(x,x,x) valeus';
//遍历数组 $sheetData
//如果有标题 先删除 unset($sheetData[1]);
foreach($sheetData as $k => $data)
$insql .= '('.$data['A'].','.$data['B'].','.$data['C'].'),';
//一次插入100条数据 减少数据库压力
if(($k+1 / 100) == 0)
$insql = rtrim($insql,',').';'; //将最后的逗号替换成分好
//插入数据库 并且重置 字符串 $insql
//或者保存到文件中 利用source 命令插入数据库
参考技术A
使用PHPExcel类读取excel文件到数组中
遍历数组写入mysql
它的功能很多,具体的用法可以查看它的帮助文档,里面解释很详细,但是都是英文的。
网址:http://phpexcel.codeplex.com/ 参考技术C 问题原因: 模型数据过大:虽然Excel文件本身不大可能不到1M,但是对于超过10个的sheet页,以及每个页有大量的列表,生成的JSON模型可能达到几个M,以大连行政平台的费用分摊为例,JSON模型达6M;
解决方法,需要设置几个关口: (1)使用tomcat服务器,tomcat对于前台发送而来的ajax post请求有最大值限制,一般默认为2M,所以需要maxPostSize=“0”
(2)如果使用mysql数据库,mysql数据库自身对于客户端传递而来的package包也有限制,需要登录mysql后台,设置max_allowed_packet,默认是1M set global max_allowed_packet = 210241024*10; // 设置为20M
(3)对于mysql数据库中的form_templete表中的content字段必须是mediumtext 或者longtext,否则也会出现无法插入的问题
具体可参考东软平台产品官网,https://platform.neusoft.com/
php怎么导出大量数据的Excel
参考技术A 不带格式的:1、 直接写csv文件。
2、COM调用adodb操作excel读取
想要带格式的标准xls文件:
请用COM调用adodb读取,然后调用excel.application格式化。
其他的方法就是扯淡,别给我说
1、phpexcel,那资源消耗只适合玩单机,兼容性也不够!
2、pear的可以带格式输出,但兼容性很差,经常打不开
3、xml方式,制作模板 比较费时。
总结:不带格式,就用csv最简单
想带格式就用adodb+excel.application来操作,(注意:excel 格式化很慢,adodb导出很快,带格式写excel就是个悲剧!)本回答被提问者和网友采纳 参考技术B 用csv格式的导出。
以上是关于求关于php excel导入大数据到mysql的解决办法的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 PHP 将大型 Excel 文件导入 MySql 数据库