联系电话:0411-66373325
联系地址:大连市沙河口区富民广场
公司邮箱:2058793689@qq.com
备案信息:Copyright © 2016-2025,www.my249.com,All rights reserved
|
249建站之家:轻松解决PHPExcel导出文件行10W行超时和内存栈溢出解决的问题 10w行excel数据导出仅需要5.26秒,再也不用担心excel导出超过1w行就超时(php.ini中的maxexecutiontime) 内存栈溢出,使用过PHPExcel的同学应该清楚,导出的文件行还没到1w行就报错了,原因是单个PHP进程超过了 php.ini配置的memory_limit 解决了csv导出时样式丢失,长数字变成科学计数法的问题,乱码的问题 <?php #使用轻量级的excel操作库PHP_XLSXWriter $timeStart = microtime(true); require_once __DIR__."/../PHP_XLSXWriter/vendor/autoload.php"; $writer = new XLSXWriter(); $sheetHeader = [ '商品id'=>'string', '库存量'=>'string', '单价'=>'string', '名称'=>'string', '卖家联系电话'=>'string'//长数字再也不用担心会变成科学计数法了 ]; $writer->writeSheetHeader('Sheet1', $sheetHeader);//optional for($i=0; $i<100000; $i++) { $s1 = $i+1; $s2 = mt_rand(0,1000); $s3 = mt_rand(100,999)/10; $s4 = "商品".$s1; $s5 = "13713147601";//随便输入的 $writer->writeSheetRow('Sheet1', array($s1, $s2, $s3, $s4, $s5) ); } $writer->writeToFile('goods_info.xlsx'); echo floor((memory_get_peak_usage())/1024/1024)."MB"; echo "\n"; echo microtime(true) -$timeStart; 文件目录结构:
|