CSV(逗號分隔值)檔案是一種純文字表格,其中每一列代表一筆記錄,每個逗號分隔一個欄位,因此將 Excel 活頁簿轉換為 CSV 會產生一個幾乎任何資料工具、資料庫或匯入流程都能讀取的可攜檔案。目前將單一 .xlsx 工作表轉換為 CSV 最可靠的方式是在本地端進行:在您的裝置上選擇一個活頁簿,挑選您想要的工作表,然後讓一個有界限的瀏覽器工具讀取儲存的值並輸出一個可供下載的 CSV 檔案。由於所有運作都在目前的分頁中執行,原本的活頁簿絕不會被上傳到遠端伺服器,也絕不會被修改或取代。匯出的 CSV 使用 CRLF 行結尾,會跳脫欄位內部的逗號、引號和換行符號,並將每個空白的儲存格視為一個空白的 CSV 欄位。字串、數字和布林值都以純文字寫入,因此由接收端的程式決定如何解析每個欄位。這使得本地瀏覽器匯出成為一次性資料移交、資料庫載入,或是可以交給同事而不必暴露底層活頁簿的快速審閱檔案的最佳選擇。

how do you convert an excel file to a csv
how do you convert an excel file to a csv

為什麼從 Excel 匯出 CSV 對資料移交至關重要

早在現代試算表應用程式標準化採用 OOXML 之前,CSV 就已經是表格資料預設的交換格式。CSV 檔案本質上就是磁碟上的位元組:以換行符號分隔的文字行、以逗號分隔的欄位,以及在包含分隔符號或換行符號的欄位外加上選用的引號。正是這種簡潔性讓許多工具都能接受它。資料庫匯入精靈、日誌分析器、使用 pandas 的 Python 腳本,以及一長串的 SaaS 整合,在需要擷取表格資料時,預設都是使用 CSV。相反地,.xlsx 檔案是一個壓縮的 OOXML 套件,內含樣式、共用字串、佈景主題、圖表、註解和計算值的 XML 組件。大多數接收系統無法直接讀取該套件。

將 Excel 轉換為 CSV 也是去除那些會混淆下游工具的試算表專屬功能的最簡單方式。接收端的 CSV 消費者永遠不會看到公式、條件格式、命名範圍、樞紐快取或工作表保護機制。它只會依序看到每個儲存格的值。如果您的活頁簿有標題列,該列就會成為第一筆記錄。如果某個欄位同時包含數字和文字,從解析器的角度來看,每個欄位仍然都是文字。這種可預測性正是 CSV 在資料移交中如此有用的原因:接收端知道格式,可以編寫確定性的解析規則。

本地瀏覽器做法有何不同

將 Excel 轉換為 CSV 有許多方法。您可以在試算表軟體中開啟活頁簿並使用「另存新檔」,撰寫使用 pandas 的 Python 腳本,執行桌面宏,或者將檔案上傳到線上轉換器。本地瀏覽器做法是第四種選擇,無需安裝任何軟體,也無需將活頁簿從您的機器送出。在您挑選檔案後,該頁面會在目前的瀏覽器分頁中將其讀取為經典的 OOXML 套件,檢查套件目錄,並載入一個鎖定的瀏覽器模組來解析工作表。一切都不會離開您的裝置:不會發生上傳、原始檔案不會被覆寫,也沒有遠端轉換伺服器會保留副本。

這在兩種實際情況下很重要。第一,當活頁簿包含您不希望第三方看到的資料時,例如客戶名單、內部指標或尚未公開的財務模型,讓位元組留在本地可消除一整類風險。第二,當您不想為了產生一個小型 CSV 而安裝完整的試算表程式或腳本執行環境時。Excel to CSV 工具就介於這兩種極端之間:它接受有限範圍的經典 .xlsx 檔案,讀取儲存的值,套用 RFC 風格的欄位跳脫規則,並輸出一個可供下載的 CSV Blob。

該工作流程背後的實作方法論刻意保持保守。該工具會在解析前驗證 ZIP 封包,拒絕多磁碟和 Zip64 套件,限制宣告的展開大小、限制項目數量,並將所選工作表的儲存格數限制在十萬個以內。損壞、不受支援或超大的活頁簿會回傳錯誤,且不會產生部分檔案。這些是明確的限制,而非無聲的截斷。

在您的瀏覽器中將 Excel 檔案轉換為 CSV

轉換過程在工具內分為三個具體步驟。每一個步驟都是一個刻意的關卡,用以防止下一步產生誤導性的檔案。

  1. 選擇一個不超過 20 MB 的本地 .xlsx 活頁簿。使用檔案選擇器從您的裝置中選擇一個經典的 OOXML 活頁簿。不接受舊版 .xls、啟用巨集的 .xlsm、二進位 .xlsb 或加密格式的檔案,也不會讀取遠端 URL。
  2. 選擇要匯出為 CSV 的工作表。在活頁簿開啟後,選擇您想要轉換的單一工作表。每次匯出只處理一個工作表;如果需要多工作表檔案,請稍後合併。
  3. 轉換並下載 CSV,然後在目的地應用程式中檢查後再分享。觸發轉換、儲存產生的 Blob,並在將使用該檔案的系統中開啟一次。在依賴該檔案進行正式傳輸之前,請先驗證分隔符號、編碼、前導零和匯入行為。

這個順序反映了該工具已驗證的運作契約。它不是行銷清單;每一個步驟都強制執行一項安全防護機制,讓下一步假設前者已經通過。略過驗證步驟是細微資料錯誤的最常見來源,特別是當目的地系統與來源活頁簿使用不同的地區設定時。

工具在轉換前強制執行的限制

瀏覽器匯出在每一個可能影響正確性的維度上都設有上限。在開始之前了解這些限制,可以省下一次徒勞的往返。

維度限制達到限制時會發生什麼
輸入檔案大小20 MB較大的活頁簿在開始任何解析之前就會回傳錯誤。
所選工作表大小100,000 個已定址儲存格較大的工作表會回傳錯誤,且不會產生部分檔案。
產生的 CSV 大小10 MB會超出此上限的輸出會以錯誤拒絕。
套件格式僅限經典 .xlsx OOXML.xls、.xlsm、.xlsb、加密的活頁簿及遠端 URL 會被拒絕。
套件完整性單一磁碟區、非 Zip64、有界限的項目數多磁碟或 Zip64 套件會在目錄檢查期間被拒絕。

這些限制都是明確的,而非靜默無聲。任何一項檢查失敗的活頁簿都會回傳清楚的錯誤,而不是產生缺少資料列的截斷 CSV。如果您有一個超過其中一項限制的活頁簿,請先分割工作表、將定址範圍縮減到您實際需要的欄位,或移除未使用的工作表以讓套件變得更小。

哪些內容會保留在 CSV 中,哪些會被留下

CSV 沒有活頁簿的概念,只有資料列和欄位。任何無法對應到一列純文字的來源 Excel 檔案功能,都會在匯出過程中被捨棄。在開始之前了解這點,可以避免事後感到意外。

會帶入 CSV 的內容從活頁簿中捨棄的內容
儲存的文字字串,原封不動工作表名稱(僅會出現所選的工作表)
儲存的數值,包含負數儲存格格式、數值格式、色彩、字型
儲存的布林值公式(不會重新執行計算結果)
空白儲存格,作為空白欄位圖表、影像、繪圖、註解、附註
工作表中的資料列順序篩選、驗證規則、合併儲存格語意
每次匯出一個工作表列印設定、頁面設定、凍結窗格

最重要的捨棄項目是公式來源。該工具不會計算公式、執行巨集、追蹤外部連結,或執行試算表內容。它只讀取儲存的值,因此從未被重新計算的公式儲存格可能會顯示過時的結果。如果來源活頁簿包含公式,請先在試算表程式中開啟它一次、強制重新計算並儲存後再匯出,以確保儲存的值反映您預期的公式。

匯出過程中套用的安全性轉換

CSV 經常在試算表軟體中開啟,而這類軟體會將以 =、+、- 或 @ 開頭的文字解讀為公式。這種行為在試算表內很方便,但當 CSV 來自不受信任的來源時就很危險:包含 =cmd|'/c calc'!A1 的惡意儲存格在開啟時會以公式形式執行。為了降低這種公式注入風險,該工具會檢查每個字串儲存格。如果其第一個有意義的字元是這四個公式觸發字元之一,匯出的欄位會在最前面加上一個單引號。數字儲存格不會被修改,因此包括負數在內的一般數字文字會按原樣保留。

這是一種刻意的安全性轉換。接收端的試算表可能會根據其匯入規則顯示該單引號,或將其保留為文字。如果您的下游工作流程依賴儲存格的精確前導字元,請在依賴該檔案之前先檢查輸出內容。此轉換僅影響字串儲存格,不影響數字,且僅在第一個有意義的字元是這四個觸發字元之一時才會套用。以字母、數字或空白字元開頭的儲存格會原封不動地通過。

在交付 CSV 之前進行驗證

匯出作業會產生單一檔案。請將其視為佐證,而非資料的正式來源。請用純文字編輯器開啟一次,再用將接收此檔案的系統開啟一次,並檢查 CSV 會悄悄改變語意的地方。

  • 編碼。在能顯示編碼的文字編輯器中開啟檔案。確認檔案編碼符合目的系統所預期的編碼,因為某些接收端預期為 Windows-1252 或帶 BOM 前綴的 UTF-8。在不遺失資料的情況下移除 CSV 檔案的 BOM一文說明了 BOM 變體之間的差異。
  • 行尾符號。輸出使用的是 CRLF,符合 RFC 4180。在 macOS 或 Linux 上執行的接收端可能會將其悄悄轉換為 LF;在 Windows 上執行的接收端則可能會保持原樣。
  • 分隔符號。確認逗號已被保留,並未在過程中被悄悄替換為分號——分號在某些語系環境中是預設分隔符號。
  • 前置零與識別碼。由於 CSV 沒有欄位類型,像 00123 這樣的字串可能會以數字的形式送達。若目的格式較為嚴格,請在工作表中為這些識別碼加上前置字元,或在匯入時明確將其指定為文字。
  • 日期值。由於此工具不會猜測語系或格式,日期會以儲存時的數值形式傳遞。請在接收端套用日期格式,而非期待特定的顯示格式。
  • 用於觸發公式儲存格的反引號 (apostrophe)。請搜尋檔案中以單引號開頭的欄位,確認安全性轉換已套用於您預期的位置,而未誤用至其他欄位。

驗證完成後,請保留原始的 .xlsx 工作表作為資料的正式來源。CSV 是衍生的產物,工作表才是正式版本。若目的端的匯入作業失敗,請重新執行驗證清單,而非重新匯出並期望結果會有所不同。若目的系統需要非 CSV 格式,請改用相關的 JSON 或 HTML 表格工具,不要勉強將 CSV 喬成不適合的形狀。

延伸閱讀:如何將 Excel 表格轉換為 HTML 程式碼