Formula Error in PHPExcel

Posted by – June 7, 2013

最近在幫客戶開發報表功能,其中一個小功能是將查詢結果匯出成 Excel 檔案,對於會計人員來說相當依賴 Excel。

如果沒有什麼特別的需求,通常會用 PHPExcel 來製作檔案。

一個典型的儲存格設定如下:

$objPHPExcel->setActiveSheetIndex(0)
              ->setCellValue('B6', $order['order_no']);

就在這個匯出功能即將完成時,發現有一個欄位只要一存入內容,PHPExcel 就會出現 Formula Error。

回頭去看資料庫,發現是 VCHAR 欄位,那寫入應該沒啥問題啊。再看看資料內容...

看了兩眼才注意到這個純文字欄位有幾格是 = (等號) 開頭... bingo!

PHPExcel 在指值的時候,碰到等號會轉換成公式,自然就爆掉了。解決方法是把 setCellValue() 換成 setCellValueExplicit(),這樣就不會被轉換了。

收工!

References:

Leave a Reply

Your email address will not be published. Required fields are marked *