PhpOffice\PhpSpreadsheet导入Excel保存数据库,数据量在几十万,上百万后,读取excel文件内容内存会严重不足,本地测试50M的Excel数据读取,16G内存会立马跑满。
$spreadsheet = IOFactory::load($inputFileName);
$sheetData = $spreadsheet->getActiveSheet()->toArray('', true, true, true);

excel另存为txt文件处理,内存不受影响

$file = fopen($path, "r");
$data = [];while(!feof($file)) {$tmp = fgets($file);if($tmp !== false) {$tmp = trim(mb_convert_encoding($tmp, "UTF-8", "GBK"));//$data[]= trim(iconv('GBK', 'UTF-8', $tmp));//fgets()函数从文件指针中读取一行if(!empty($tmp)) {$data[] = explode("\t", $tmp);}}
}
fclose($file);
return $data;
        header('Content-Type: application/vnd.ms-execl');header('Content-Disposition: attachment;filename="rter.csv"');$fp = fopen('php://output', 'a');foreach ($data as $k => $datum){foreach($datum as $key => $item) {$datum[$key] = iconv('UTF-8', 'GBK', $item);}fputcsv($fp, $datum);if($k/10000 == 0){ob_flush();flush();}}//关闭句柄fclose($fp);ob_flush();flush();exit;header('content-type:application/octet-stream');header('Accept-Ranges:bytes');$filesize = filesize($file);//告诉浏览器返回的文件大小header('Accept-Length:'.$filesize);//告诉浏览器文件作为附件处理并且设定最终下载完成的文件名称header('content-disposition:attachment;filename=fdgd.csv');//针对大文件,规定每次读取文件的字节数为4096字节,直接输出数据$read_buffer = 4096;$handle = fopen($file, 'rb');//总的缓冲的字节数$sum_buffer=0;//只要没到文件尾,就一直读取while(!feof($handle) && $sum_buffer < $filesize) {echo fread($handle, $read_buffer);$sum_buffer+=$read_buffer;}//关闭句柄fclose($handle);exit;

PHPExcel大文件导入数据库相关推荐

  1. json大文件导入数据库

    json文件导入数据库 使用Navicat的客户端工具也可以实现json文件导入数据库,但是数据量大了之后,字段的值过于冗长可能会导致数据的截取,是的数据导入不是完整的. 所以另辟蹊径使用其他方法 创 ...

  2. php如何导入大文件数据库,PHP读取CSV大文件导入数据库的示例

    文章详细介绍了csv文件在php中快速导入到mysql数据库中的例子,虽然从最简单的几百MB的到最后使用插件实现几个GB数据导入中间有一些嗑碰了,但结果还是好的. 对于数百万条数据量的CSV文件,文件 ...

  3. 解决大文件导入数据库速度慢、卡死的思路

    上传 上传可以使用webuploader分片上传,在服务端进行合并文件 如何解决导入慢的问题 如果没有逻辑就只是导入,则可以使用数据库提供的命令行工具进行导入,导入csv文件,如:pgsql 的-c ...

  4. java代码将csv格式的文件导入数据库

    java代码将csv格式的文件导入数据库 最近接到了一个需求,将csv文件的内容通过java进行入库操作,在此记录一下整个完整的代码 主要逻辑 读取csv的每一个数据,对数据对应的对象赋值,将对象放入 ...

  5. 为什么NTFS删除超过4G大文件或数据库文件后FILE RECORD大小表现为0

    为什么NTFS删除超过4G大文件或数据库文件后FILE RECORD大小表现为0? 答:NTFS删除一个文件,必须要完成如下几个流程,才算完结: 1.更改文件系统$bitmap,释放空间 2.更改$m ...

  6. excel 文件导入数据库(java)

    excel文件导入数据库! 先上传,后解析,再对sql建表,插入数据,导入完成,删除上传的临时表! 谢谢指点! 1.导入jar jxl.jar poi-poi-2.5.1jar poi-contrib ...

  7. CSV文件导入数据库后中文乱码

    CSV文件导入数据库后中文乱码 背景:我用的是Dbeaver连接的clickhouse数据库,向现场的同事要了数据(CSV格式文件),导入后都是途中这样的,根本用不了.在网上找到同样的情况的文章,记录 ...

  8. ITPUB老帖子:小招技巧3: EXCEL文件导入数据库

    小招技巧3: EXCEL文件导入数据库 (发贴日期:2003.03.11) EXCEL文件导入数据库的简便方法 嗨! 这个问题你可能有很多好方法. 不过多学一种不是坏事. 你用的方法可能是: 1. 存 ...

  9. 将json文件导入数据库

    将json文件导入数据库 作为小白编写该文档可能有很多地方需要去改进 这里json文件内容格式为 [ { [ ] } ] 使用alibab的fastjson中JsonReader进行解析 大致流程如下 ...

最新文章

  1. Java 缓冲流简介及简单用法
  2. copyof java_死磕 java集合之CopyOnWriteArrayList源码分析
  3. ubuntu 只有客人会话登录(第一次深刻感受文件权限的威力 )
  4. spring 异步返回结果_使用Spring Integration聚合异步结果
  5. android使用menu需要重写的方法,Android – 正确使用invalidateOptionsMenu()
  6. mongoDB 特别指令用法
  7. 智能移动项目打包发布经验交流
  8. python画汤姆猫简笔画_汤姆猫简笔画图片
  9. 发那科机器人注油_安川机器人加油保养流程
  10. android+微博点赞动画,模仿微博点赞动画
  11. tungsten-replicator安装
  12. 投资转型:实体店铺,投资经营复盘
  13. 同网络的计算机能共享音箱吗,2019年PC“老爷机”局域网内DLNA共享音乐到小度智能音箱全记录...
  14. break在java语言中什么意思_在Java语言的控制结构中,break语句是经常用到的语句。在switch语句中break语句的作用是( )_学小易找答案...
  15. python用pandas读取excel_浅谈python之利用pandas和openpyxl读取excel数据
  16. SPSS进行数据分析的一般步骤
  17. 温莎电子计算机工程,加拿大工科专业解析—电子计算机工程
  18. 嗯?你的VS2019运行黑框一闪而过嘛
  19. Educational Codeforces Round 45 (Rated for Div. 2) A Commentary Boxes
  20. 小白Jupyter快捷键

热门文章

  1. 多边形面积_ssl1213_计算几何
  2. CCNA考试情况及心得体会
  3. Python3 教程4
  4. Ubuntu 20.04 设置窗口打不开或者不显示解决方法
  5. 计算机科学教学指导委员会,关于进一步加强高等学校计算机基础教学的意见暨计算机基础课程教学基本要求(试行) 教育部高等学校计算机科学与技术教学指导委员会制 9787040188097...
  6. 全新修复版/官方代付系统/支付宝微信代付/企业付款/提现秒到
  7. xml文件全面解析。
  8. 把web程序打包成exe安装文件
  9. Objective-C语言简介
  10. 人工智能时代下机器的未来