在使用 Microsoft Excel 處理資料時,CSV(逗號分隔值, Comma Separated Values)是一種非常常見的檔案格式。CSV 因為簡單、通用,被廣泛用於資料交換與匯出報表。然而,當我們把 CSV 檔案直接用 Excel 開啟時,常常會遇到一個令人困擾的問題:
原本在 CSV 中作為文字(字串)的欄位,卻被 Excel 自動轉換為數字,導致格式錯誤。
例如:
"00123"
這種前置零的重要識別碼,本來被視為字串,但 Excel 打開後會自動把它變成:
123
這會造成資料錯誤、識別碼失敗或下游系統判讀錯誤,尤其在金融、條碼、ID 與產品編碼等情況下非常棘手。
為什麼會發生自動轉換?
Excel 的開發設計初衷是讓使用者方便地操作數據,因此它會嘗試「智能判斷」資料格式。如果某個欄位看起來像是數值(例如全部都是數字),Excel 就會自動把它當成數字處理,包括:
去除前置零
將長數字識別為科學記號
調整日期格式
這種行為對大部分數據很方便,但在一些需要精確控制格式的 CSV 內容中卻會導致錯誤。
解決方法:在 CSV 欄位中顯式標示字串
為了讓 Excel 不自動轉換欄位格式,我們可以在 CSV 裡面的字串前後加上 等號與引號,例如:
="00123"
這樣處理後:
Excel 會把這整個欄位視為公式字串
顯示為完整的
"00123"前置零 不會被去掉
這是目前最簡單、直接可行的方法,不需額外工具或手動格式設定。
實際示例
原始的 CSV 內容:
Product Code,Name
00123,Widget A
00045,Gadget B
Excel 直接開啟後可能變成:
Product Code Name 123 Widget A 45 Gadget B
加上公式字串後 CSV 內容:
Product Code,Name
="00123",Widget A
="00045",Gadget B
此時 Excel 會正確顯示:
Product Code Name 00123 Widget A 00045 Gadget B
更安全的匯入方式(避免格式自動轉換)
如果你不想修改 CSV 本身,也可以透過 Excel 的匯入精靈來手動指定格式:
開啟 Excel
選擇 資料 > 從文字/CSV 匯入
選擇你的 CSV 檔案
-
在匯入選項中指定「欄位格式」為 文字(Text)
完成匯入
這樣 Excel 就不會自動把字串轉成數字,也能保留前置零及其它格式完整性。
CSV 與編碼注意事項(進階)
除了欄位格式外,在匯出或匯入 CSV 時,編碼格式(如 UTF-8 vs ANSI)也會影響資料正確性,尤其是含有中文或特殊字元時。為避免亂碼問題,建議:
CSV 使用 UTF-8 編碼
匯入時在精靈中指定 UTF-8 字元集
這樣才能確保所有語言與符號都能正確顯示與處理。
沒有留言:
張貼留言