2016-04-28 21 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