PHPExcel是一個PHP用來處理Excel讀取與寫入最好的程式庫,實際撰寫時,跟Excel的對應功能還是
有些差異的。
筆者使用PHPExcel的removeRow()要刪除一個Excel檔的特定列時,發生錯誤,原因是這列中存在合併
儲存格,PHPExcel的removeRow()無法刪除包含合併儲存格的列,因此,必須使用unmerge_cells()來解除合併儲存格。
下面是使用unmerge_cells()解除合併儲存格產生的錯誤與解決方法 :
有些差異的。
筆者使用PHPExcel的removeRow()要刪除一個Excel檔的特定列時,發生錯誤,原因是這列中存在合併
儲存格,PHPExcel的removeRow()無法刪除包含合併儲存格的列,因此,必須使用unmerge_cells()來解除合併儲存格。
下面是使用unmerge_cells()解除合併儲存格產生的錯誤與解決方法 :
如果unmerge_cells()要解除的範圍包含兩個合併儲存格,會發生錯誤。
例如 範圍A1:D1是一個合併儲存格,範圍A2:D2是一個合併儲存格
用$objPHPExcelOut->getActiveSheet()->unmergeCells("A1:D2”);要解除此範圍的合併,開啟產生
的Excel檔時會跳出錯誤視窗,訊息為"已移除的記錄: /xl/worksheets/sheet1.xml 部分的 合併儲存格"
的Excel檔時會跳出錯誤視窗,訊息為"已移除的記錄: /xl/worksheets/sheet1.xml 部分的 合併儲存格"
原因是 $objPHPExcelOut->getActiveSheet()->unmergeCells("A1:D2”);
只能範圍A1:D2必須是一個完整合併的儲存格。
如果是兩個範圍,就必須分別解除合併,如下:
$objPHPExcelOut->getActiveSheet()->unmergeCells("A1:D1”);
$objPHPExcelOut->getActiveSheet()->unmergeCells("A2:D2”);
另外,unmerge_cells()要解除的範圍內有一般儲存格與合併儲存格,也會發生錯誤。
例如 範圍A1:C1是一個已合併的儲存格
例如 範圍A1:C1是一個已合併的儲存格
用$objPHPExcelOut->getActiveSheet()->unmergeCells("A1:D1”);
要解除範圍A1:C1的合併儲存格,同樣也會產生錯誤。
所以PHPExcel unmergeCells()一次只能解除一個合併儲存格,而且不能包含其他儲存格。
沒有留言:
張貼留言
歡迎提供意見, 謝謝 (註 : 留言經過版主審核通過才會發布)