格式選擇取決於誰來用、怎麼用

交付格式看起來是個小問題,但選錯會在打開檔案的第一步就卡住:幾十萬列的表格 Excel 打不開、巢狀的留言結構被攤平成一欄看不懂、CSV 打開全是亂碼。

判斷標準就四個:資料量、後續處理工具、有沒有巢狀欄位、誰來協作。

三個形狀不同的玻璃容器並排,上方懸浮著三個不同形狀的立體幾何體

三種格式各自適合什麼

XLSX:給人看的

適合直接用 Excel 或表格軟體檢視、篩選、標註的場景。可以保留多個工作表,把資料和欄位說明放在同一個檔案裡,也支援欄寬、凍結首列這些便於閱讀的設定。

限制是列數上限約一百萬列,超過就無法完整打開;而且幾十萬列時,打開和篩選都會明顯變慢。

適合: 客戶名單、商家資料、需要業務人員直接使用和標註的資料。

伺服器機櫃指示燈的特寫,冷藍色調

CSV:給機器處理的

純文字,結構簡單,幾乎所有工具都能讀,也是匯入資料庫最省事的格式。檔案體積明顯小於同等資料量的 XLSX,處理超大資料量時優勢明顯。

限制是不保留任何格式資訊,也不支援多工作表——所以欄位說明必須單獨給一份檔案。

適合: 資料量大、要匯入資料庫或用指令碼處理、需要接進已有資料流程的場景。

層層巢狀的木盒,上方懸浮著一個巢狀的立體方框

JSON:給有層級的資料用的

適合有巢狀結構的資料。最典型的是留言樹——一則貼文下有多則一級留言,每則一級留言下又有回覆。這種結構強行攤平成表格,要麼丟失層級關係,要麼產生大量重複列。

限制是不能直接用表格軟體檢視,需要有人會處理。

適合: 留言與回覆的層級關係、一個商品對應多個變體、一個商家對應多個類目標籤這類一對多結構。

鐵軌分岔處的俯拍

一個簡單的判斷順序

  1. 資料有巢狀層級嗎?有就用 JSON。
  2. 資料量超過幾十萬列嗎?超過就用 CSV。
  3. 主要是業務人員直接看和篩選嗎?是就用 XLSX。
  4. 都不確定?XLSX 加 CSV 各給一份。
交付格式決策樹:依巢狀結構、資料量和使用者依次判斷 資料裡有巢狀層級嗎 JSON 留言樹、一對多結構,攤平會丟層級 沒有 超過幾十萬列嗎 超過 CSV 體積小、易匯入,欄位說明需另附 沒超過 XLSX 業務人員直接看、篩選和標註 都不確定:XLSX 加 CSV 各給一份 同一份資料匯出兩種格式的成本可以忽略,能同時滿足人看和機器處理兩種用法
依巢狀結構、資料量、使用者的順序判斷。最後一種是實際專案裡最常見的選擇。

第四種是最常見的選擇。同一份資料匯出兩種格式的成本可以忽略,但能同時滿足人看和機器處理兩種需求。

地面上的黃色警示錐特寫

幾個容易踩的坑

CSV 的中文亂碼。 這是 Excel 的編碼識別問題,不是檔案損壞。我們交付的 CSV 預設使用帶 BOM 的 UTF-8 編碼,可以被 Excel 正確識別。如果你的後續流程需要不帶 BOM 的版本,提前說明即可。

長數字被轉成科學記號。 電話號碼、商品編號這類長數字串在表格軟體裡可能被當成數值處理,導致前導零丟失或顯示為科學記號。這類欄位我們會依文字處理,但如果你在自己的流程裡重新匯出,要注意這個問題。

換行字元破壞 CSV 結構。 貼文正文、留言、商品描述裡可能含有換行,處理不當會讓一列資料被拆成多列。交付前會做跳脫處理,但如果你用簡單的依行分割方式讀取,仍然可能出錯——建議用標準的 CSV 剖析函式庫讀。

欄位說明單獨給。 CSV 和 JSON 都放不下欄位說明,我們會附一份獨立的說明檔案。這份檔案建議和資料檔案一起歸檔,隔幾個月之後回頭看,欄位口徑全靠它。

被分裝進多個紙箱的照片,上方懸浮著幾個大小一致的立體方塊

關於檔案拆分

資料量很大時,可以依地區、類目或時間段拆成多個檔案。

拆分規則要和使用方式相符。如果後續是依國家分別處理,就依國家拆;如果要整體匯入資料庫,那麼不拆反而更省事。拆分方式在交付前確認一下,避免拿到手還要自己合併或重新拆。