CSV 匯入後資料變了怎麼辦?先檢查編碼、日期與識別碼
CSV 匯入後出現亂碼、日期被改寫或代碼少了前導零?先保存原始檔,再用代表性樣本核對字元、欄位型別、資料筆數與回復方式。

CSV 匯入後資料看起來不一樣,常見原因不是原始檔內容突然改變,而是開啟、預覽或匯入時,軟體依自己的規則解讀文字、日期與數字。先不要直接補改資料或重匯;把原始檔保留下來,再以代表性樣本逐項核對,才能分辨問題發生在來源檔、試算表開啟,還是目標系統解析。以下依照匯入前的檢查順序,整理編碼、日期、識別碼、筆數和回復方式。
最容易誤判的是只看匯入後的畫面:一串代碼看似整齊,可能已失去前導零;日期看似合理,也可能是月份與日期交換。檢查時要以原始字串與預期型別為基準,並先挑出會暴露這些差異的代表性樣本。

保存原始匯出檔副本
先把來源系統下載的 CSV 原檔另存成一份不會再編輯的基準副本,避免用試算表開啟後直接按儲存,覆寫掉原先的文字表示。至少保留「原始檔」與「檢查副本」兩份;檔名可加入匯出日期或批次代號,例如「訂單_20261018_原始.csv」及「訂單_20261018_檢查.csv」,實際命名依團隊規則即可。檔案若放在共用資料夾,確認版本紀錄可以取回舊版、並知道目前誰能修改;同步備份不一定等於可回復的歷史版本。匯出當下記下來源報表、篩選條件、時間範圍、預期資料列數,以及檔案是否已被 Excel、Numbers 或其他表格程式開啟。這些線索能分辨變化是在來源匯出、檔案開啟時,還是後續匯入發生。若檔案含個人或營業資料,依原有權限保存,只挑必要欄位做測試,別把完整名單複製到私人信箱或不受控位置。
檢查時先用純文字檢視器讀取,不要用它存檔;另做副本才能試不同開啟方式。可在紀錄上寫明基準檔名、檔案大小、匯出時間和操作者,讓同事知道哪一份可比對。若原檔曾經覆寫,回來源重新匯出並另存;若無法重現相同篩選條件,就明確標註新檔不是原始基準,不要拿它推論舊批次的差異。如果要把檔案交給同事,交代哪份是只讀基準、哪份可以操作,避免兩人各自儲存成同一檔名。每次重匯出都使用新檔名,不用同一日期的檔案互相覆蓋;若發現顯示有變,先確認檢查的是哪一份,再把差異發生步驟記下來。若匯出條件會改變資料範圍,也把條件一併保存,不要只記下檔名。另記錄操作日期。
挑選不同格式樣本
樣本不要只取資料表開頭幾列,因為前面可能剛好都是最單純的值。先列出欄位,再從來源挑出能代表不同格式的列:中文姓名或品名、含逗號與引號的文字、前後空白、空值、重複值、日期、零開頭的代碼、長位數識別碼,以及包含全形符號或英數混合的內容。若檔案含多種日期欄、不同匯出批次或不同建立者,也各挑一筆,別假設同名欄位每次都用同一種表示。用原始列號加不敏感的唯一鍵記下樣本位置;姓名或畫面顯示文字可能重複,單靠它們追蹤容易看錯列。每筆樣本在操作前先寫下原始字串、預期型別和成功標準,像「00127」預期仍是五個字元的代碼,而不是可加減的數字。
若不能把真實資料帶進測試環境,可另建假資料重現同一種格式,但要明確標示是假資料,並回到受控環境核對必要的真實樣本。只抽出幾列不代表它們涵蓋所有例外;對每個關鍵欄位問一次:有沒有前導零、符號、空白、換行或格式混用?若答案不同,就增加一筆。樣本以足夠暴露解析規則為準,無須複製整份名單。
實際挑樣可先從各欄位找極端與例外值:字數最短、最長、空白、含分隔符、重複鍵、最早與最晚日期;再補一筆平常值做對照。若來源沒有唯一鍵,記錄所在列及相鄰欄位作定位。不要用隨機抽樣代替刻意挑例外,因為少見格式可能抽不到;也不要把一筆假資料當成真實資料全部安全的證明。完成預覽後回到同一列核對,記下成功或失敗的具體差異,方便換工具或匯出批次時重做。
檢查中文與符號顯示
中文或符號亂碼時,先不要逐格重打。先判斷變形出現在哪一步:用文字編輯器查看原始檔、以不同文字編碼重新開啟檢查副本,再看匯入預覽。若原始字串本身已是問號或錯碼,問題可能早在匯出時發生;若文字檢視正常、只有某種開啟方式出現亂碼,則要檢查那次讀取對文字編碼的解讀。UTF-8、Big5 等編碼名稱只代表解讀位元組的方式,選錯可能讓正確位元組呈現錯字;不要因為畫面上一種預覽比較順眼,就直接覆寫原檔。
挑樣本時不只看「中文顯示正常」,還要核對原字串中的全形與半形標點、括號、斜線、連字號、引號、換行、特殊符號及 emoji 是否完整。含逗號或換行的欄位若原檔用引號包住,匯入結果仍應是一個欄位,不應被拆成多欄或多列。檢查欄位分隔符也很重要:逗號、分號或定位符若被解讀錯,整列的欄位位置可能偏移,看似是中文損壞其實是欄位切分錯了。
一旦只在特定工具中亂碼,先用它提供的文字匯入方式指定編碼、分隔符與文字欄位,再對同一批樣本重做比對;名稱和按鈕依版本而異,不要照別人截圖盲選。保存一份出現亂碼的截圖或記錄值、工具版本、開啟方式,供排查但不要把含敏感資料的畫面公開。最後回到原始文字逐字核對,確認問號不是顯示代碼,也不是原資料本來就有的字元。若無法判斷位元組是否完整,先停止整批匯入,保留兩份副本交由熟悉檔案格式的人協助確認。另確認欄位寬度沒有遮住後半段文字;點進儲存格查看完整值,勿只依畫面截斷判斷檔案是否缺字。
核對日期與識別碼
日期、電話、郵遞區號、訂單號與會員代碼常會被試算表當成可計算的數字或日期,但用途其實是辨識或顯示。日期欄要先定義期待的表示,再核對年、月、日有沒有被倒置、時分秒或時區資訊有沒有遺失;對「03/04/2026」這種可能有不同讀法的字串,先回來源欄位定義或匯出說明確認預期月份和日期,不要猜。識別碼則保留原始文字逐位比對,尤其是零開頭、長數字、帶英文字母的代碼。若被轉成數值,顯示格式可能掩蓋零被刪、尾數改變或小數點,僅看欄位畫面不夠;改以文字方式匯入,並用原始字串作為驗收標準。
以下是假設資料,用來示範核對方法,不代表任何特定系統的日期規則:
| 欄位(假設資料) | 原始值 | 核對重點 |
|---|---|---|
| 日期(假設為 2026 年 3 月 4 日) | 03/04/2026 | 預覽值須符合已確認的年月日 |
| 商品代碼 | 00127 | 保留 5 個字元與開頭 2 個零 |
| 外部識別碼 | 123456789012345678 | 逐字一致,不以顯示格式代替原值 |
每個欄位都先決定匯入後要存成文字還是日期型別;前者適合識別碼,後者適合需要排序或計算的日曆日期。核對日期時抽查月底、月初、跨年與空值;識別碼則檢查最長值、零開頭和重複值。若匯入工具提供欄位型別預覽,逐欄確認後再繼續;若沒有,就先將少量樣本匯入可回復的位置。不要只在工作表把儲存格格式改成文字;若原值已在開檔時被轉換,改顯示格式不會自動恢復原字串。遇到疑似轉換,重新從原始 CSV 以文字欄位匯入樣本,或回到來源紀錄核對;先確認資料型態,再決定是否轉成日期欄。日期型別可供排序計算,但若來源只有年月日,不要無意間補入時間或時區值。
比對匯入前後筆數
檔案打開沒有亂碼,不代表資料列都進去了。匯入前先分清楚總列數是否含欄名、空白列是否有意義,以及來源系統的匯出條件;匯入後再看預覽接受數、拒絕數、略過數與最後新增或更新數。確認目標系統如何處理重複列、已存在識別碼、必填欄空白和格式錯誤,不要把「處理完成」當成筆數相等。若每列有唯一識別碼,可比對來源與目標的識別碼集合,找出缺少、多出或重複的項目;若沒有唯一鍵,先挑可穩定組合的欄位,在複本中標記並由人工核對,不要只用總數掩蓋一列遺失與另一列重複互相抵銷。
以下是明確假設的數字示例:來源有 120 筆資料列,匯入預覽可接受 118 筆,代表 2 筆未通過預覽;完成後實際新增 117 筆,若其中 1 筆因已存在而略過,120 − 2 − 1 = 117,差異即可對上。這只是算帳示範,不是任何工具的預設行為。
| 檢查點(假設數字) | 筆數 | 代表意思 |
|---|---|---|
| 來源資料列 | 120 | 不含欄名 |
| 預覽可接受 | 118 | 另有 2 筆拒絕或錯誤 |
| 匯入後新增 | 117 | 再有 1 筆因既存而略過 |
把每筆差異回指原始列號,標記原因和處置,直到拒絕、略過或更新都有明確去向。若匯入結果沒有提供細節,就用識別碼抽查頭尾與隨機樣本,並逐項核算可解釋的差額;對不上時不要重按匯入,先查部分成功的紀錄,以免重覆建立資料。若來源有公式或格式行,按資料列而非螢幕上「有內容的格子」計數,避免列數定義不同。也要核對更新數,因為有些匯入會改寫既有資料但不增加總數。把新增、更新、略過、拒絕分開記錄,再判斷每一筆差異的去向。
確認再匯入前可回復
重新匯入前,先弄清楚這個動作是新增、更新相同識別碼、覆寫整張資料,還是三者混合;相同 CSV 重跑一次可能重複新增,也可能覆蓋人工修改。查閱目標工具的匯入說明或先在非正式資料區以少量、可辨認的測試列操作。確認操作者能否單筆刪除、批次撤回、還原匯入前匯出或回復備份;只有返回上一頁或關閉視窗,不代表資料已復原。若只能人工補救,先估算受影響範圍、可定位的識別碼、負責人和預留時間,並寫下停止條件:筆數、字元或日期任一不符,就不進下一批。
準備好回復方式後,先用一小批非關鍵資料走完整流程:保存原始檔、設定欄位型別、匯入、讀回結果,再實際演練如何撤回或修正。確認修正不會刪掉其他人的更新,才擴到下一批;若工具不能在正式資料外測試,也至少先匯出匯入前狀態、確認權限與回復程序,並安排在有人能處理異常時執行。若已部分匯入,先用唯一識別碼確認哪些列存在,再決定續跑缺失資料或回復整批,不要把同一檔案盲目重送。
把你的檢查表至少列上:來源檔名與列數、樣本欄位和預期值、編碼與分隔符、日期格式、識別碼是否保留、匯入差異、回復負責人。照這張表完成一個可回復的小批次後,再安排正式資料批次。在補匯入前寫下要重跑的範圍與排除條件,並備份目前目標資料;若只缺少幾列,就只補經識別確認的列,不要重新送出整份。留存執行人、時間、檔名與結果,讓下一位接手者能重現或停止。想了解 ZhenheAI 的目前資訊,可從品牌首頁開始。