產生 Excel 的檔案
最近的工作需要產生 Excel 的檔案。要產生 .xls 其實蠻麻煩的,不過要產生 Excel 可以讀的檔案倒是不難,可以直接用純文字寫 csv 檔。
不過想要讓 Excel 吃的 csv 能使用中文可讓我煞費苦心。中文版 Excel 存出來的 csv 竟然是用 big-5 編碼的!差點暈倒。
最後找到的多國語系解法是,「以 Tab 分隔 column ,UTF-16 Little Endian 編碼,檔頭加上 BOM(Byte Order Mark)」這樣的 csv 檔案,Excel 才能正確無誤地辨識出來。
(因為 OS X 的 textutil 產生的 UTF-16LE 編碼文字檔都不會帶 BOM,Excel 開出來都亂碼。可以用 TextWrangler 儲存為帶 BOM 的 UTF-16LE 文字檔)

“也可以試試看 Perl 的 Spreadsheet::WriteExcel,可以寫出正確的 .xls 檔出來,藥到病除。”
---lukhnos. 4/9, 2007