2016-04-28 202 views
1

我用下面的代码来生成Excel中的一个报告:如何将phpExcel的行数限制增加到24000以上?

require_once "phpexcel/class.writeexcel_workbook.inc.php"; 
require_once "phpexcel/class.writeexcel_worksheet.inc.php"; 
$fname = tempnam("/tmp", "simple.xls"); 
$workbook = &new writeexcel_workbook($fname); 
$gen =& $workbook->addformat(); 
$gen->set_align('left'); 
$gen->set_num_format('General'); 
$worksheet = &$workbook->addworksheet("records"); 
$worksheet->write_string(0,0,'Customer'); 
$worksheet->write_string(0,1,'ID'); 
$worksheet->set_column(0,0,30,$gen); 
$worksheet->set_column(0,1,10,$gen); 
$j=1; 
while($res = mysql_fetch_array($qry)) 
{ 
    $worksheet->write($j,0,$res['cust']); 
    $worksheet->write($j,1,$res['id']); 
    $j++; 
} 
$workbook->close(); 
header("Content-Type: application/x-msexcel; name=records.xls"); 
header("Content-Disposition: inline; filename=records.xls"); 

当我运行这个文件的生成输出正常,但只是问题是,如果我的记录涉及上述24000则显示错误信息。

如果我设置1到24000记录其工作

如果我设置上面24000记录其工作

,如果我将所有然后它不工作(当时的26000条记录会)

+0

可能wanne尝试XLSX? – Naruto

+0

“然后显示错误信息” - 让我猜 - 内存错误?你有没有尝试过提供给PHP? – h2ooooooo

+0

你试过增加你的RAM容量吗? – Justinas

回答

0

你可以试试这个官方例子: https://github.com/PHPOffice/PHPExcel/blob/7d1c140974a4988f8a9739d167335d24fb59955e/Examples/06largescale-xls.php

此外,考虑到提高PHP内存限制

PHPExcel拥有电子表格的“内存”表示,所以它很容易受PHP内存限制。通过编辑php.ini文件中的memory_limit指令的值,或通过在代码中使用ini_set('memory_limit','128M')(ISP允许),可以增加可用于PHP的内存。

Here is a similar question

+0

我尝试过使用ini_set('memory_limit','128M');和ini_set('memory_limit','-1');但没用 – Joker