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. python基础之异常处理
  2. 判断iframe是否加载完成的方法[转]
  3. linux vmware 安装后无法桥接到物理网卡的解决办法
  4. html中加减号怎么输入,jQuery 实现点击加减号改变input标签中的value值,该怎么解决...
  5. python连接wifi_Python3控制win10连接wifi热点
  6. MySQL 表分区功能详解
  7. java 虚拟机常用启动参数
  8. json多层集合转对象
  9. 用简单易懂的例子解释隐马尔可夫模型
  10. Fences隐藏桌面图标快捷方式箭头
  11. 操作系统---处理器调度
  12. scrapy 爬虫框架及链家租房信息爬取示例
  13. python虚拟机:pvm
  14. 测试分析——熟悉被测软件
  15. Beaver's Calculator(蓝桥杯 算法训练)sort排序
  16. 转:SQL Server:获取当前日期是本月的第几周
  17. java 去掉前后逗号_java 怎样去掉最后面那个逗号
  18. java 重写函数_JAVA函数的重载和重写
  19. 2017百度前端技术学院习题-05
  20. AVB简介--第三篇:AVTP简介

热门文章

  1. 电子电力系统仿真整理
  2. windows下安装ubuntu20.04双系统
  3. Matlab/simulink 风储调频,风电调频,模糊控制,mpc模型预测,虚拟惯性控制,下垂控制。
  4. 《Python编程:从入门到实践》第16章 pygal.i18n获取国别码 两处报错:ImportError: No module named 'pygal.i18n'
  5. 一个访问不了造成的祸害
  6. Eclipse android 项目转android studio填坑之旅
  7. 基于USB总线的无线网卡驱动程序
  8. Android的MVP设计架构:网络加载图片为例
  9. 使用PyTorch构建GAN生成对抗网络源码(详细步骤讲解+注释版)02 人脸识别 上
  10. 电子邮件协议(SMTP,MIME,POP3,IMAP)