CSV 表格 (.csv)

RFC 標準

逗號分隔值(Comma-Separated Values, CSV)是用於表格資料的常見純文字格式,其中每一行代表一筆資料記錄,欄位則由分隔字元隔開。

將 XLSX 轉換為 CSV

免費的瀏覽器端 XLSX 轉 CSV 轉換器。在您的裝置上即時轉換檔案。

線上壓縮 CSV

具隱私保障 - 檔案絕不會離開您的裝置

檢查與中繼資料

作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 CSV 檔案:

在這裡選擇或拖放檔案

私密 - 檔案絕不會離開您的裝置

或貼上 Ctrl+V
零網路傳輸隱私保證: 0 位元組上傳至外部伺服器。所有處理皆在本機瀏覽器沙箱中進行。

位元組層級標頭簽章(檔案簽章)

作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 CSV 檔案:

十六進位簽章(偏移量 0):

無(CSV 沒有固定的檔案簽章)

ASCII 表示法: 文字位元組;編碼不固定(通常為 UTF-8)

標準化: RFC 4180 / IETF

技術規格

容器架構以分隔符號區隔的平面文字檔案,用於表示表格資料的列與欄
壓縮Gzip 與 Deflate 可以壓縮重複的文字;產生的檔案大小取決於資料與設定
位元組序UTF-8 文字串流(Excel 會使用選用的 UTF-8 BOM EF BB BF)
色彩空間不適用
色版與結構以 CRLF 分隔的列記錄,欄位則以逗號分隔
最大尺寸無限制;可串流處理至數 GB 大小,不需將整個檔案載入記憶體中
透明度不適用
串流與漸進式所有資料管線皆支援原生逐行串流處理

技術比較矩陣:CSV 對比競爭格式

技術屬性CSV (目前)Excel (XLSX)ParquetJSON
檔案類型純文字平面表格壓縮的 XML 試算表二進位欄式儲存階層式文字
多個工作表無(僅限單一平面表格)有(多個活頁簿與工作表)以分割區為基礎的儲存巢狀陣列與物件
資料類型無型別的原始文字具型別的儲存格、公式、格式設定嚴格的二進位欄位類型基本類型(字串、數字、布林值)
大型資料分析慢(需要線性讀取每一列)不適合大量資料極快(欄位剪枝與條件下推)適中

常見損壞模式與十六進位修復指南

欄位向右偏移或列數不符。

根本原因: 文字欄位包含未跳脫的逗號且周圍沒有加上引號。

修復: RFC 4180 要求包含逗號的欄位必須用雙引號包住:"Smith, John"。

帶重音符號的字元在 Excel 中呈現奇怪的符號(例如亂碼 é,而非 é)。

根本原因: Excel 在開啟 UTF-8 CSV 時,誤以為是舊版的 Windows ANSI/CP1252 字元編碼。

修復: 在檔案開頭加上 3 位元組的 UTF-8 位元組順序記號(0xEF 0xBB 0xBF)。

安全性分析與解析器攻擊向量

CSV 檔案會直接在 Excel 和 Google 試算表等試算表軟體中開啟,使使用者暴露於公式注入(CSV Injection)攻擊的風險中。

已知攻擊向量

  • 公式注入:以「=」、「+」、「-」或「@」開頭的儲存格會執行試算表巨集或 DDE 指令(例如「=cmd|' /C calc'!A0」)。
  • 透過 HYPERLINK() 公式進行資料外洩,點擊時會將敏感的儲存格資料傳送至遠端攻擊者的伺服器。

防禦最佳實務: 將使用者資料匯出至 CSV 時,請在任何以「=」、「+」、「-」或「@」開頭的儲存格前面加上單引號(')或定位字元,以強制在 Excel 中以純文字呈現。

歷史起源與里程碑

2015全球資訊網協會(W3C)的全球資訊網表格資料與中繼資料模型(Model for Tabular Data and Metadata on the Web)將全球資訊網上的 CSV(CSVW)標準化,並搭配 JSON-LD 中繼資料描述項。
2005網際網路工程任務組(IETF)發布 RFC 4180,建立 CSV 檔案的正式規格。
1972IBM Fortran (H Extended) 編譯器實作了逗號分隔的輸入/輸出。

主要優勢與優點

  • 極致簡單:可用任何文字編輯器讀取,並可匯入每一個資料庫與試算表中。
  • 極為快速的逐行串流處理,不需要建立完整的記憶體內 DOM。
  • 極低的額外負擔:沒有冗長的標籤語法或綱要定義。

技術限制與缺點

  • 沒有標準資料類型:數字、日期、布林值和文字全都儲存為原始字串。
  • 不支援多個工作表、儲存格格式、公式或中繼資料。
  • 分隔符號衝突(文字中的逗號、歐洲地區使用的逗號小數點)經常導致解析錯誤。

有趣的技術冷知識

  • 在許多將逗號用作小數點的歐洲國家中,會使用分號(;)來代替逗號作為 CSV 分隔符號。
  • Microsoft Excel 過去需要 UTF-8 BOM(0xEF 0xBB 0xBF)才能正確顯示非 ASCII 的帶重音符號字元。
  • 英國國家醫療服務體系(NHS)在 2020 年因故遺失了近 16,000 筆嚴重特殊傳染性肺炎(COVID-19)接觸者追蹤記錄,因為資料被匯入至列數上限為 65,536 的過時 Excel 試算表格式中。

常見技術問題

什麼是 RFC 4180?

RFC 4180 是 IETF 針對 CSV 的官方標準。它規定包含逗號、換行字元或雙引號的欄位必須以雙引號包圍,且內部引號必須透過重複兩次("")來跳脫。

為什麼 CSV 檔案在 Excel 中開啟時字元會亂碼?

較舊版本的 Microsoft Excel 在直接開啟 CSV 檔案時,預設會使用本機 Windows 字碼頁(例如 Windows-1252)而非 UTF-8。在檔案開頭加入 UTF-8 BOM(位元組順序記號)可強制 Excel 正確解碼 UTF-8。

什麼是 CSV 注入(公式注入)?

當不受信任的使用者輸入包含開頭的公式觸發字元(「=」、「+」、「-」、「@」)並被匯出至試算表檔案時,就會發生 CSV 注入。使用 Excel 等軟體開啟時,試算表會自動執行公式或動態資料交換(DDE)指令,可能因此執行系統指令或外洩資料。