求关于php excel导入大数据到mysql的解决办法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求关于php excel导入大数据到mysql的解决办法相关的知识,希望对你有一定的参考价值。

如题,字段有40个,需要导入的EXCEL数据不到5万条。
有没有好的解决方法使用php 将excel导入到mysql数据库。
求php代码的实现步骤。

下载 PHPExcel
    

require_once( './PHPExcel/IOFactory.php');
$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

参考技术B 可以使用PHPExcel,PHPExcel是一个php制作的工具,能够读取和生成excel文件,功能非常丰富,除了基本的读取和生成之外,还可以设定单元格、文字等的格式、插入图片。
它的功能很多,具体的用法可以查看它的帮助文档,里面解释很详细,但是都是英文的。
网址: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 数据库

用php导入10W条+ 级别的csv大文件数据到mysql。导出10W+级别数据到csv文件

php怎么导出大量数据的Excel

PHP批量导入excell表格到mysql数据库

PHP把MSSQL数据导入到MYSQL的方法

求指导用C#借助npoi将excel导入mysql数据库(或者dataset、datatable)!!!!!