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

交付格式看起來是個小問題,但選錯會在打開檔案的第一步就卡住:幾十萬行的表格 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 都放不下欄位說明,我們會附一份獨立的說明檔案。這份檔案建議和數據檔案一起歸檔,隔幾個月之後回頭看,欄位口徑全靠它。

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

關於檔案拆分

數據量很大時,可以按地區、類目或時間段拆成多個檔案。

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