使用說明
從銀行、電商後台、政府網站或差勤系統下載的 CSV,用 Excel 一打開就滿畫面亂碼,或電話、郵遞區號、員工編號前面的 0 不見了。這個工具把檔案在你的瀏覽器裡解開,自動判斷是 UTF-8 還是 Big5,逐欄決定存成文字還是數字,再輸出成可以直接用 Excel 打開的 .xlsx,或修好的 CSV。
為什麼 Excel 打開 CSV 會變成亂碼
CSV 是純文字檔,檔案裡沒有寫「我是用哪一種編碼存的」。繁體中文最常見的編碼有兩種:UTF-8 與 Big5。政府開放資料、Google 試算表與多數新系統匯出的是 UTF-8;舊的銀行、會計與差勤系統,以及在繁體中文 Windows 上用 Excel 另存的 CSV,多半是 Big5。
Windows 的 Excel 直接點兩下開 CSV 時,只認一個記號:檔案開頭的 BOM(位元組順序標記)。有 BOM 就用 UTF-8 讀,沒有就用系統的預設編碼讀,繁體中文 Windows 是 Big5。所以沒有 BOM 的 UTF-8 檔案會被當成 Big5 解讀,中文變成一串看不懂的字,這就是亂碼。反過來,Big5 的檔案拿到 Mac 或其他語言的 Windows 上打開,一樣會亂碼。
前面的 0 不見是另一個問題:Excel 開 CSV 時,會把看起來像數字的格子自動轉成數字。0912345678 變成 912345678;超過 11 位的號碼顯示成 1.23457E+11 這樣的科學記號;超過 15 位的號碼,後面幾位直接變成 0。
不用工具的修法
修法一:Excel 的「資料 → 從文字/CSV」
- 開一個空白的 Excel 活頁簿,切到「資料」索引標籤,按「從文字/CSV」。
- 選擇 CSV 檔,按「匯入」。
- 在預覽視窗的「檔案原點」選「65001: Unicode (UTF-8)」;中文還是亂的話,改選「950: 繁體中文 (Big5)」,直到預覽正確。
- 有要保留前面的 0 的欄(電話、郵遞區號、員工編號):按「轉換資料」,在 Power Query 編輯器裡點那一欄欄名左邊的型別圖示,改成「文字」,再按「關閉並載入」。沒有這種欄的話直接按「載入」。
每個檔案都要做一次。舊版 Excel 沒有「從文字/CSV」,改用「從文字」開啟文字匯入精靈,步驟類似。
修法二:用記事本另存成「具有 BOM 的 UTF-8」
- 在 CSV 檔上按右鍵,選「開啟檔案」→「記事本」。
- 確認記事本裡的中文是正常的;如果連記事本裡都是亂碼,這個方法不適用,請用修法一或上面的工具。
- 按「檔案」→「另存新檔」,下方的「編碼」選「具有 BOM 的 UTF-8」,按「存檔」並取代原檔。
- 再用 Excel 點兩下打開,中文就正常了。
這個方法只解決亂碼,前面的 0 與長號碼一樣會被 Excel 轉成數字。
用這個工具的步驟
- 把 CSV 拖進上面的框,或按「選擇檔案」。一次可以選好幾個,.txt 與 .tsv 也可以。
- 看兩種解讀的預覽,按中文正常的那一邊的「這個看起來對」。工具已經先選好,大多數時候不用改。
- 確認每一欄的格式:電話、郵遞區號、編號這類要保留前面的 0 的選「文字」,金額、數量這類要加總的選「數字」。
- 按「下載 Excel(.xlsx)」。要交給其他系統匯入的,按「下載修好的 CSV」。
每一欄怎麼判斷是文字還是數字
- 有任何一格以 0 開頭(0912345678、00123):整欄存成文字,前面的 0 才會保留。
- 超過 11 位的整數(訂單號碼、信用卡號、條碼):存成文字,不會變成科學記號,後面幾位也不會變成 0。
- 欄名是電話、手機、統一編號、身分證、員工編號、郵遞區號這類的:就算都是數字也存成文字,它們不拿來加總。
- 其他整欄都是數字的(可以有千分位逗號、小數點、負號):存成真的數字,Excel 可以直接加總。有千分位的保留千分位;小數位數照原檔最多的那一位顯示,35.5 不會被四捨五入成 36。
- 會計系統、銀行對帳單與電商後台常見的寫法也算數字:會計格式的負數 (1,200)、幣別 NT$100 與 $1,200、單位 100元 與 1,200 元、百分比 15%、全形數字 1,200。值照會計慣例存(見下表),格式照每一格原本的樣子,所以打開來看起來一樣,又可以加總;全形數字會顯示成半形。
- 有斜線或橫線的日期(2026/09/27)與有文字的欄:照原樣存成文字。同一欄只要有一格是 $待確認、(見附件) 這種文字,整欄就存成文字;只有 (1)、(2) 這種項次的欄也當成文字。20260927 這種沒有分隔符號的日期看起來是數字,會存成數字,要保留原樣請把那一欄改成「文字」。
| 原檔的寫法 | 存進 Excel 的值 | Excel 的格式代碼 | 打開來看到 |
|---|---|---|---|
(1,200) | -1200 | #,##0;(#,##0) | (1,200) |
NT$1,200 | 1200 | "NT$"#,##0 | NT$1,200 |
(NT$50) | -50 | "NT$"General;("NT$"General) | (NT$50) |
1,200 元 | 1200 | #,##0" 元" | 1,200 元 |
15% | 0.15 | 0% | 15% |
1,200 | 1200 | #,##0 | 1,200 |
上表由本站的判斷程式算出來。同一欄的格子共用千分位與小數位數(有一格有千分位,整欄都加千分位),幣別、括號與百分比照每一格自己的樣子。
判斷錯了沒關係,在預覽表格的欄名下面改選即可,預覽會馬上顯示存進 Excel 之後的樣子。
常見問題
檔案會上傳嗎?
不會。檔案只在你的瀏覽器處理,讀檔、判斷編碼與產生 Excel 都在這個分頁裡完成,不需要網路。統計只記錄偵測到的編碼種類、列數區間與下載格式,不含檔名與內容。
下載修好的 CSV,用 Excel 打開後 0 為什麼又不見了?
CSV 沒有「這一欄是文字」的設定,Excel 打開 CSV 時一律把像數字的格子轉成數字。要保留前面的 0,請下載 .xlsx,或用上面的修法一匯入。
中文變成「�」是什麼意思?
那是解讀不出來的字。兩種解讀都有「�」的話,檔案可能是簡體中文(GBK)或日文的編碼,或含有 Big5 以外的造字。這個工具目前只處理 UTF-8、Big5 與 UTF-16。
檔案很大可以嗎?
20 萬列或 50 MB 以內可以直接處理;更大的建議先分割成幾份,100 MB 以上的檔案不處理。Excel 一張工作表最多 1,048,576 列,超過的只能下載 CSV。
舊系統只收 Big5 的 CSV 怎麼辦?
按「下載 Big5 的 CSV」。銀行整批轉帳、差勤或政府申報的上傳端有些只認 Big5(Windows 的繁體中文編碼),UTF-8 的檔案匯進去會變亂碼或被拒絕。Big5 只收一萬三千多個中文字,罕用字(例如𠮷)、香港字、簡體字、emoji、日文假名與 ① 這類圈圈數字放不下;遇到這些字,工具會列出是第幾列哪一欄,由你決定換成「?」再下載,或先回原始檔案改掉。Big5 的編碼表是用你的瀏覽器內建的功能現場建的,不需要網路。
一次可以轉好幾個檔案嗎?
可以。一次選或拖進好幾個檔案,上方會列出每個檔案,點檔名切換,每個檔案各自下載。