我使用这个http://phpexcel.codeplex.com/导出到excel。
需要输出11000到65000行.但是当尝试这样做时,这个浏览器就挂掉了。它不会用错误或其他消息来回答。请出示正在进行中的请求。
上面显示apache已经完成了工作。甚至apache日志也说这一切都完成了:
x.x.x.x - - [28/Jul/2011:12:28:38 +0300] "POST /doctor/lab/statistic/ HTTP/1.1" 200 2773504 "http://x.x.x.x:82/doctor/lab/statistic/" "Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0"但还是没有结果。
系统:
Linux Eearth 2.6.34-12-desktop #1 SMP PREEMPT 2010-06-29 02:39:08 +0200 i686
PHP Version 5.3.5
Apache/2.2.15 (Linux/SUSE) 所以问题是
编辑1
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="'.$filename.'.xls"');
header('Cache-Control: max-age=0');
$writer = PHPExcel_IOFactory::createWriter($xls, 'Excel5');
$writer->save('php://output');
exit;编辑2
我试图将数据保存到像这个$writer->save('test.xls');文件大小2.7MB这样的文件中,如果我这样做的话:
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="'.$filename.'.xls"');
header('Cache-Control: max-age=0');
include 'test.xls';
exit;下载立即开始..。
发布于 2011-07-28 10:35:02
您的web服务器可能没有发出错误消息,所以我想说检查您的error.log (应该挂在/var/log/apache2或类似的地方)。这很可能是一些琐碎的事情,比如无法写入临时文件。
如果这是一个死胡同,考虑以编程方式创建带有echo语句的CSV文件- Excel会打开这些文件。
编辑
要生成CSV,请执行标头操作
header('Content-Type: text/comma-separated-values);
header('Content-Disposition:attachment;filename="'.$filename.'.csv"');
header('Cache-Control: max-age=0');然后输出列标题:
echo "col1,col2,col3,col4,..." 然后是一条新的路线。然后输出数据:
while(/*Still got some rows*/) {
echo $row[0] . "," .$row[1] "," + ...
}看一看:http://en.wikipedia.org/wiki/Comma-separated_values,它是一种非常简单的文件格式,而且Excel将毫不费力地打开它。
另一件事,我没想过,就是如果您可以访问Windows,您可以通过COM互操作直接生成Excel文件。
https://stackoverflow.com/questions/6857075
复制相似问题