首頁 · 免費工具 · 比較兩個 CSV

比較兩個 CSV 檔案

把昨天的匯出檔和今天的放進來。改過的每一格、新增的每一列、消失的每一列都會列出來。 對應是用你自己挑的鍵值欄(編號、電子郵件、單號)進行的,所以一份重新排序後才回來的匯出檔, 不會被讀成整份都改了。分隔符號和編碼是逐檔判斷的。

第一個 CSV

把 .csv、.tsv 或 .txt 放進來

第二個 CSV

你要核對的、比較新的那一份

不會上傳任何東西。檔案由這個分頁的 JavaScript 讀取,不會離開你的電腦 —— 沒有任何伺服器看得到,關掉分頁資料就沒了。

用文字比對來看 CSV,會安靜地出錯

大部分 CSV 比較工具骨子裡是文字比對:A 的第 1 列對 B 的第 1 列,然後往下走。 對原始碼來說完全正確,對匯出的資料來說則是安靜地錯,因為匯出檔會遇到兩件原始碼不會遇到的事:

  • 順序會變。 同一份報表明天再跑一次,可能是另一種排序,或是上面多插了一列。 逐列比對就會把後面全部報成「已變更」,兩處真正的差異送到你面前時變成四千處。
  • 欄位會位移。 有人在中間插了一欄,之後每一格都往右挪了一格。

用鍵值欄對應可以同時解決這兩件事:配對看的是那一欄的值,順序就不重要了; 比對是按標題名稱逐欄進行的,所以中間插入的欄位會顯示成「多了一欄」。

Big5、UTF-8 與 BOM

繁體中文的 CSV 編碼不只一種。舊系統匯出的可能是 Big5, Excel 用「CSV UTF-8」存出來的是帶 BOM 的 UTF-8, 從網頁下載的常常是不帶 BOM 的 UTF-8 —— 它們都叫「CSV」。分隔符號是 Tab 的也有。

這些是逐檔各自判斷的。兩份編碼不同、分隔符號也不同的匯出檔,仍然可以正確比對; 變成亂碼送過來的檔案會被解碼,而不是照著亂碼去比。如果你只需要這半件事, 修正 CSV 編碼 單獨就能做。

什麼算是差異

值會先去掉前後空白,再當成文字比較。對匯出資料來說這才好用 —— 0012 會保持 0012 而不會變成數字 12, 某一邊系統多加的一個空白也不會讓整份都變紅。引號會被正規化掉 —— 它是 CSV 的語法而不是資料 —— 換行符號也一樣: 同一份檔案在 Windows 和在 macOS 存出來,並不是兩份不同的檔案。

不會離開這個分頁

CSV 匯出檔通常就是整張客戶表、整份訂單紀錄,或是一次薪資計算。兩個檔案都是由你電腦上的 JavaScript 讀取,比對也在那裡完成。根本沒有送出的請求。

常見問題

兩個檔案排序不一樣,會有問題嗎?

不會 —— 鍵值欄就是為了這件事。配對看的是那一欄的值,不是列號。 只有在完全沒有識別欄、而順序本身就是資訊的時候,才切到「用位置」。

兩個檔案的編碼或分隔符號不同也可以嗎?

可以。每個檔案各自判斷,所以一份 Big5、分號分隔的匯出檔, 可以正確地跟一份帶 BOM 的 UTF-8、逗號分隔的檔案比對;判斷結果會顯示出來。

可以拿 CSV 跟 Excel 檔比嗎?

可以。兩個框也接受 .xlsx 和 .xlsm,活頁簿還能挑工作表。如果兩邊都是 Excel 檔, 比較兩個 Excel 檔 才是為此而寫的頁面。

檔案會被上傳嗎?

不會。打開開發者工具的「網路」分頁,再放一個檔案進來:不會出現任何一筆新的請求。

同一件事,在自己的電腦上做

TableDI 是一套完全在自己電腦上執行的桌面試算表工作空間。 匯入、整理、做成圖表 —— 什麼都不會上傳,也不用註冊帳號。

永久免費,不是試用 —— 不用帳號、不用信用卡。目前是 macOS,Windows 版準備中。付費版多了什麼

2026-09-01 由 TableDI 團隊最後檢查。這一頁有錯嗎?告訴我們 —— 只有一個收件匣,由做 TableDI 的人自己看。