作者mango314 (Mine)
看板PHP
标题[请益] PHPExcel 汇出问题
时间Sat Jul 26 12:34:47 2014
版上各位先进好
我是刚进入PHP这块领域不久的新手
最近在试PHPExcel这套件
在测试资料汇出的过程中可以顺利将资料写入excel档
但是当资料过多时,产生的excel档在第一次开启时会显示错误讯息:
"Excel在 'xxx.xlsx' 中发现无法读取的内容。您是否要回复此活页簿的内容?
如果您信任此活页簿的来源,请按一下「是」"
按"是"之後虽然可以顺利恢复文件,但是这问题却使我十分困扰,因为这并非正常现象
有找到与我问题相近的讨论:
http://ppt.cc/KW36
里面提到的解法有试过但仍无法解决
此外当资料量过多时,在汇出的过程会变很久
简单整理一下我遇到的问题:
(1) 写入excel的资料笔数过多时开启会显示警示讯息,回复文件方能正常
(2) 资料笔数过多时,网页读取缓慢
因此想请教版上有使用过此一套件的先进们
在汇出多笔资料时是否会有问题?又或着是我code写的关系导致这些问题?
以下是我写入excel的code,由於刚学习不久,不确定此一作法是否正确
$rowOfWrite = 2;//从表格第二列开始写入
while ($rowOfData = $result->fetch_assoc()) {
for($i=0; $i < count($db_field); $i++){
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue($fieldArray[$i] . $rowOfWrite,
$rowOfData[$db_field[$i]]);
$objPHPExcel->getActiveSheet()
->getColumnDimension($fieldArray[$i])
->setWidth(24);
$objPHPExcel->getActiveSheet()
->getStyle($fieldArray[$i].$rowOfWrite)
->applyFromArray($styleArrayOfData);
}
$rowOfWrite++;
}
$result->free();
在烦请版上各位先进为我解惑
另外如有发现写法上的问题,也再请各位给予指点建议,谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.240.70.120
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/PHP/M.1406349290.A.885.html
1F:→ hit1205:有没有可能是笔数多的时候PHP有产生错误讯息,导致 07/26 15:08
2F:→ hit1205:错误讯息一起被写进去 XD? 07/26 15:08
3F:→ mango314:我有先试过下面a大的方法,也将读出的资料echo出来看过, 07/27 00:03
4F:→ mango314:但未显示任何错误讯息,感谢你的建议,我在思考看看~ 07/27 00:04
经过其他人的指点,原来问题是出在我写入的内容有等号,这边会被excel判定为公式
解法为 setCellValueExplicit('A1', 'aaaa',PHPExcel_Cell_DataType::TYPE_STRING)
将栏位的格式设定为文字即可解决,在这边补上提供给有需要的朋友们~
※ 编辑: mango314 (111.240.70.9), 07/27/2014 22:17:22
※ 编辑: mango314 (111.240.70.9), 07/27/2014 22:18:38