以下代码用于使用PHPExel将XLSX文件转换为CSV:
<?php
require_once 'PHPExcel/PHPExcel/IOFactory.php';
$excel = PHPExcel_IOFactory::load("test123.xlsx");
$writer = PHPExcel_IOFactory::createWriter($excel, 'CSV');
$writer->setDelimiter(";");
$writer->setEnclosure("");
$writer->save("test123.csv");
?>
我正在尝试转换大Excel文件,70MB大小,CSV。我得到这个错误:
Warning: simplexml_load_string(): Memory allocation failed : growing buffer
我在php.ini中增加了max_execution_time
和memory_limit=-1
。
有谁能告诉我为什么这个错误是得到我哪里错了吗?
1条答案
按热度按时间kdfy810k1#
好吧,我给你几个建议:
1.如果您的xlsx有多个工作表,而您只需要其中的一个或几个工作表,那么尝试只加载这些工作表。
1.使用Cell caching。
1.您还可以使用工作表的
toArray()
方法来消除在构建数组的单元格之间的循环。尝试组合或所有上述建议,看看它是否能帮助你。另外,参考论坛上的this讨论。
请参考此说明和以下描述来理解它。