[請益] PHPExcel 匯出問題(已解決)

看板PHP作者 (Mine)時間11年前 (2014/07/26 12:34), 11年前編輯推噓0(004)
留言4則, 2人參與, 最新討論串1/1
版上各位先進好 我是剛進入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://www.ptt.cc/bbs/PHP/M.1406349290.A.885.html

07/26 15:08, , 1F
有沒有可能是筆數多的時候PHP有產生錯誤訊息,導致
07/26 15:08, 1F

07/26 15:08, , 2F
錯誤訊息一起被寫進去 XD?
07/26 15:08, 2F

07/27 00:03, , 3F
我有先試過下面a大的方法,也將讀出的資料echo出來看過,
07/27 00:03, 3F

07/27 00:04, , 4F
但未顯示任何錯誤訊息,感謝你的建議,我在思考看看~
07/27 00:04, 4F
經過其他人的指點,原來問題是出在我寫入的內容有等號,這邊會被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
文章代碼(AID): #1Jqo_gY5 (PHP)
文章代碼(AID): #1Jqo_gY5 (PHP)