CSV 轉 Excel:為什麼每個欄位都變成文字,以及你該知道的解析陷阱
如果你有一份 CSV 檔(逗號、分號或 Tab 分隔的純文字表格),想把它變成 Excel 活頁簿(.xlsx),這個頁面會直接幫你辦到。工具會保留 CSV 裡的每一列每一行,放進新檔案的第一個工作表,轉換前還能預覽結果。
但 CSV 與 Excel 的先天差異,讓這個轉換過程不是單純的「另存新檔」。以下逐步拆解實際運作方式、常見錯誤,以及你該如何避免踩雷。
為什麼轉出來的 Excel 裡所有值都是文字
CSV 沒有資料型別:每一筆資料抵達時都是純文字。數字、日期、加上前導零的識別碼(例如郵遞區號、產品代碼)在產生的 XLSX 裡一律儲存為文字。也就是說,你下載後打開 Excel,看到的「01234」不會自動變成數字 1234,而會保留「01234」這個字串。如果你想讓那些欄位變成真正的數字或日期,必須在 Excel 裡手動設定儲存格格式(例如選取整欄後設為「數值」或「日期」)。
這點與直接用 Excel 開啟 CSV(Excel 有時會自作聰明把「001」轉成 1)正好相反。使用本轉換工具,前導零一定保得住,因為所有資料都當文字處理。
此外,CSV 無法攜帶多個工作表、公式、儲存格樣式或任何格式。來源檔沒有這些東西,所以輸出的 Excel 只有原始資料,沒有任何自動型別判斷或格式化。如果你需要公式、合併儲存格或條件式格式,請在轉換後的 Excel 裡自行加工。
分隔符號選錯,整份 CSV 就廢了
CSV 的全名是「逗號分隔值」,但實務上許多人用分號或 Tab 做分隔。CSV 檔本身沒有欄位可以宣告自己用了哪種分隔符號,因此使用者必須在轉換時手動選擇。
常見的錯誤是:明明檔案用分號分隔(例如歐洲地區常見的地區設定),使用者卻選了逗號。這時工具會把整行視為一個欄位,或者因為逗號數量不對導致解析失敗。錯誤訊息 This CSV could not be parsed. 八成就是分隔符號選錯。另一個可能是:資料欄位內包含未跳脫的引號或換行字元,也會讓解析器混淆。
如果你不確定檔案的分隔符號,可以在文字編輯器中打開查看:逗號分隔每列的值直接用逗號隔開;分號也是同樣邏輯;Tab 分隔則在編輯器中顯示為一段空白。務必確認後再選。
邊界情況:哪些東西會讓轉換失敗
以下是事實文件中列舉的所有可能錯誤訊息,每一條對應一種實際狀況:
| 錯誤訊息 | 原因 |
|---|---|
| Choose a CSV, JSON or XLSX file. | 選了非 CSV/JSON/XLSX 檔案 |
| This file is too large. Use a file under ‹max›. | 檔案超過 8 MB 的工具上限 |
| This CSV could not be parsed. | CSV 格式有問題:分隔符號選錯、內嵌未跳脫的逗號或換行、欄位不平衡 |
| This JSON is invalid or not table-shaped. | JSON 檔案無效或不是表格形狀 |
| This Excel file could not be opened. | Excel 檔案無法開啟 |
| This file has no table rows. | 檔案內容為空,或只有標題列沒有資料行 |
| Conversion cancelled. | 使用者手動取消 |
| Could not convert this file. | 通用轉換失敗,可能是檔案損毀或無法讀取 |
| This conversion is taking too long. Try a smaller file. | 檔案過大導致瀏覽器逾時 |
特別注意「內嵌換行」:CSV 的欄位值如果包含換行字元,必須用雙引號括起來,否則解析器會誤以為換行就是新的一列。許多資料庫匯出的 CSV 沒有做好引號跳脫,就會觸發解析錯誤。
誰會需要這個轉換工具
- 你收到一份 CSV 報表、資料庫匯出檔或名單,需要在 Excel 裡開啟,且希望欄位標題保持不變。
- 你要把表格資料分享給只會用 Excel 的同事,對方不想碰 CSV 匯入功能。
- 你打算在 Excel 裡用排序、篩選、樞紐分析表來分析資料,但原始資料是 CSV 格式。
- 你必須確保前導零(如郵遞區號 00501、帳號 000123)不被 Excel 自動截掉——用這個轉換工具可以維持文字型態。
- 你注重隱私,不想把資料上傳到任何伺服器,只要瀏覽器端處理就夠。
全在瀏覽器端執行:不上傳、不留存
轉換過程完全在你的瀏覽器裡完成。當你選擇一個 CSV 檔案時,瀏覽器會解析該檔案,並在你的裝置上寫入轉換後的輸出。任何時刻檔案都沒有離開你的電腦,也沒有上傳到雲端。這對處理敏感資料(客戶名單、財務數據、內部報表)的人來說是很大的安心點。
缺點是:檔案太大或行數/欄數過多時,瀏覽器的記憶體和執行緒限制可能導致處理逾時或瀏覽器當機。如果你遇到「This conversion is taking too long. Try a smaller file.」,請考慮將原始 CSV 分割成較小的區塊分別轉換。
常見問題 FAQ
問:轉換後的 Excel 裡,日期欄位看起來還是文字,怎麼辦?
答:因為所有值都以文字儲存。在 Excel 中選取該欄,按 Ctrl+1 開啟儲存格格式,選擇「日期」並挑選合適的格式即可。如果日期格式不是 Excel 能辨識的標準格式(例如 2024/12/25 可以,但 25.12.2024 可能需要先重新整理)。
問:我的 CSV 有數百萬行,可以一次轉嗎?
答:本工具一次只能處理一個檔案。請確認檔案大小與行數是否在工具的限制範圍內:檔案大小上限為 8 MB,最多 10,000 列和 200 欄。如果出現容量或時間錯誤,請將 CSV 分割成較小的檔案分別轉換。
問:為什麼轉出來的 Excel 只有一個工作表?
答:CSV 只能表示一個平面表格,無法包含多個工作表。工具只會把 CSV 的內容放進第一個工作表(預設名稱為「Sheet1」)。
問:我可以在 CSV 裡寫公式嗎?轉換後會自動計算嗎?
答:不行。CSV 是純文字,任何公式字串(如 =SUM(A1:A10))只會被當成一般文字匯入,不會在 Excel 中自動計算。你必須在轉換後的 Excel 裡重新輸入公式。
問:CSV 裡有中文字或特殊符號,轉換後會亂碼嗎?
答:工具會以 UTF-8 解讀 CSV,因此只要是 UTF-8 編碼的檔案,中文字應可正常顯示。如果你的 CSV 是 ANSI 或 Big5 編碼,可能出現亂碼,建議先將 CSV 另存為 UTF-8 再轉換。
問:轉換前可以預覽結果,但預覽的資料會不會包含所有列?
答:預覽會顯示前 8 列和前 8 欄。下載的檔案仍包含所有列。