CSV vs XLSX:存成 CSV 的時候你失去了什麼

Docs Nov 1, 2026 3 min read

把試算表存成 CSV 感覺上沒什麼傷害。檔案小、到哪都開得了、數字看起來也都一樣。然後一週後有人打開它,電話號碼前面的零不見了、日期順序顛倒了、每一條公式都變成了凍結的數值。

那些都不是 bug。那就是 CSV 本身。

兩種格式各自是什麼

CSV 是 comma-separated values(逗號分隔值)的縮寫,而這個名字就是它的完整規格。它是一個純文字檔,一行是一列,逗號把欄位分開。就這樣。它沒有為別的東西留位置,因為格式裡根本沒有別的東西可以留。

XLSX 是一包壓縮過的 XML 文件,描述一個活頁簿:多個工作表、儲存格型別、公式、格式、圖表、具名範圍、驗證規則。它從 2007 年起就是 Excel 的預設格式,而且是公開有文件的標準,所以別的試算表程式也讀寫得了。

CSV 丟掉了什麼

除了一張工作表上的那些值,其餘全部:

猜測,就是資料被弄壞的地方

最後那一點造成了大家真正會注意到的那些失敗。

開頭的零不見了。一個 00123 的郵遞區號或料號看起來像數字,所以被當成數字讀,而數字沒有開頭的零。它變成 123。

日期被重新解讀。03/04/2026 在世界大部分地方是四月三日,在美國是三月四日。CSV 沒有說是哪一個;讀它的程式套用自己的地區設定。

長數字變成科學記號。一個十六位的識別碼可能被顯示成 1.23457E+15,而且更糟的是被四捨五入。

重音字元壞掉。CSV 不記錄自己的編碼。用 UTF-8 寫出去、被用別的編碼讀進來,café 就變成 café。這是 CSV 最常見的單一抱怨。

分隔符不一定是逗號。在用逗號當小數點的地區,試算表程式寫出來的是分號。一個在德國產出的檔案,用「逗號」的預期去開,整份會全部落在 A 欄。

CSV 真正厲害的地方

只講到這裡並不公平,因為 CSV 活下來是有好理由的。

通用。每一個資料庫、程式語言、統計套件、分析工具都讀 CSV。它是「兩個系統之間什麼都不共享時」搬運資料的共通語言。

體積與速度。一百萬列的 CSV 只有對應 XLSX 的一小部分大,而且可以一行一行串流處理,不必把整份載入記憶體。

透明。你可以用文字編輯器打開它,看到裡面確切有什麼。匯入失敗的時候,這一點價值非常高。

耐久。一個純文字檔四十年後不費什麼力氣就還讀得出來。那是一個真實的典藏論據。

怎麼選

用 XLSX,當這個檔案是一份「人要在裡面工作」的文件——任何有公式、有多張工作表、格式本身帶有意義,或者同事會編輯後寄回來的。

用 CSV,當這個檔案是「移動中的資料」——餵給匯入程序、從某個系統匯出、交給一支腳本或一位統計人員。一張值的表,送去一個只要值的地方。

該問的問題是:收下它的是人還是程式?人需要那些結構;程式通常希望那些結構被剝掉。

怎麼讓 CSV 乖一點

速查

快速解決你的檔案問題: PDF 轉換 立即免費使用 — PDF 轉換 →