首页 » SEO优化 » foreach页面超时php技巧_轻松解决PHPExcel导出10W行超时和内存溢出问题

foreach页面超时php技巧_轻松解决PHPExcel导出10W行超时和内存溢出问题

访客 2024-11-07 0

扫一扫用手机浏览

文章目录 [+]

专题1:PHPExcel的疑难杂症各个击破

本文利用了一个轻量级的PHP的Excel操作库-PHP_XLSXWriter

一.办理行的问题

foreach页面超时php技巧_轻松解决PHPExcel导出10W行超时和内存溢出问题

10w行excel数据导出仅须要5.26秒,再也不用担心excel导出超过1w行就超时(php.ini中的maxexecutiontime)

foreach页面超时php技巧_轻松解决PHPExcel导出10W行超时和内存溢出问题
(图片来自网络侵删)

内存栈溢出,利用过PHPExcel的同学该当清楚,导出的文件行还没到1w行就报错了,缘故原由是单个PHP进程超过了 php.ini配置的memory_limit

办理了csv导出时样式丢失,长数字变成科学计数法的问题,乱码的问题

<?php

#利用轻量级的excel操作库PHP_XLSXWriter

$timeStart = microtime(true);

require_once __DIR__.\"大众/../PHP_XLSXWriter/vendor/autoload.php\"大众;

$writer =newXLSXWriter();

$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 \公众\"大众;

echo microtime(true)-$timeStart;

源码地址:https://gitee.com/nodestudy/The-PHP-Best-Practice

文件目录构造:

一.办理列的问题

最近有个需求,THINKPHP3.2中对数据进行导出,数据一共有43项,导出时候就会抱错 Invalid cell coordinate [1

由于phpexcel 的cell.php里默认就设置了26列,而且判断方法里默认从a-z然后下一个列便是aa1了 ,而实际上在excel里z后面该当是AA,AB,AC,AD,AE,AF这样 以是须要改判断方法,我之前写过一篇excel的导出,只须要吧个中一个方法改动一下,改动的思想便是 当超过26列的时候 下一列命名该当是AA,AB,而不是 aa1,AA2,改进方法如下

1、将列的字母转成数字序号利用,代码如下:

$phpExcel = new PHPExcel();

//$array须要导出的数组

foreach($array as $k => $value){

$title_col = PHPExcel_Cell::stringFromColumnIndex($k); // 从0开始 A-Z,AA,AB...

$phpExcel->getActiveSheet()->setCellValue($title_col.\"大众1\"大众,$value);//标题行 A1-Z1,AA1,AB1...

}

2、将列的数字序号转成字母利用,代码如下:

PHPExcel_Cell::columnIndexFromString('AA');

标签:

相关文章

我国土地利用分类代码的构建与应用

土地利用分类代码是我国土地管理的重要组成部分,是土地资源调查、规划、利用和保护的依据。土地利用分类代码的构建与应用显得尤为重要。本...

SEO优化 2025-02-18 阅读1 评论0

微信跳转微信支付便捷支付体验的秘密武器

移动支付已成为人们日常生活中不可或缺的一部分。作为我国领先的社交平台,微信支付凭借其便捷、安全的支付方式,深受广大用户的喜爱。而微...

SEO优化 2025-02-18 阅读0 评论0

探寻会计科目代码背后的奥秘分类与

会计科目代码是会计信息系统中不可或缺的组成部分,它将企业的经济活动进行分类和归纳,为会计核算、财务分析和决策提供重要依据。本文将从...

SEO优化 2025-02-18 阅读1 评论0