最近在幫客戶開發報表功能,其中一個小功能是將查詢結果匯出成 Excel 檔案,對於會計人員來說相當依賴 Excel。
如果沒有什麼特別的需求,通常會用 PHPExcel 來製作檔案。
一個典型的儲存格設定如下:
$objPHPExcel->setActiveSheetIndex(0) ->setCellValue('B6', $order['order_no']);
就在這個匯出功能即將完成時,發現有一個欄位只要一存入內容,PHPExcel 就會出現 Formula Error。
回頭去看資料庫,發現是 VCHAR 欄位,那寫入應該沒啥問題啊。再看看資料內容…
看了兩眼才注意到這個純文字欄位有幾格是 = (等號) 開頭… bingo!
PHPExcel 在指值的時候,碰到等號會轉換成公式,自然就爆掉了。解決方法是把 setCellValue() 換成 setCellValueExplicit(),這樣就不會被轉換了。
收工!
Leave a Reply