Excel 轉 JSON 轉換工具:保留數據類型,純瀏覽器端處理
這個頁面讓你上傳一個 Excel(XLSX)檔案,然後下載一個 JSON 檔案,內含第一個工作表的結構化表格數據。轉換過程完全在你的瀏覽器內完成——你的瀏覽器會解析檔案並在你的裝置上寫入轉換後的輸出。沒有任何資料被上載到伺服器。
為何 XLSX 轉 JSON 跟轉 CSV 截然不同?
CSV 把每一行壓成純文字行,所有值都變成字串。但 XLSX 本質是一個壓縮的 XML 工作簿,可以攜帶多個工作表、儲存格類型(文字、數字、日期、布林值)。JSON 則是支援類型與巢狀結構的格式——它可以表達物件、陣列、數字、布林值和 null。因此,當你使用這個工具轉換時,數字與布林值可以保留為 JSON 的 typed 值(例如 123 而不是 "123"),而不是被迫轉成引號字串。儲存格格式、公式(不會被計算),以及第一個工作表以外的資料都會被捨棄。相較之下,CSV 無法區分 123 是數字還是文字,一律變成字串。
輸入與輸出
輸入:
- 一個 XLSX 檔案(可拖放或用檔案選擇器)。
輸出:
- 一個可下載的 JSON 檔案。
- 預覽結果。
- 轉換後的表格有多少行與列。
- 輸出 JSON 的檔案大小。
儲存格類型映射:數字、布林值與日期如何變成 JSON
XLSX 儲存格有明確的類型標籤(t="s" 代表共享字串,t="b" 代表布林值,t="n" 代表數字)。轉換時,工具按下列規則處理:
| XLSX 儲存格類型 | JSON 輸出 |
|---|---|
| 數字 (如 42) | 42(數字,無引號) |
| 布林值 (TRUE / FALSE) | true / false(布林值,無引號) |
| 日期 (如 2023-01-15) | ISO 8601 字串(如 "2023-01-15T00:00:00.000Z") |
只取第一個工作表的限制
XLSX 可以包含多個工作表(Sheet1, Sheet2...),但這個工具只讀取第一個工作表。如果你的 Excel 檔案有數個工作表,你需要分別為每個工作表重複轉換,或者先用其他方法將需要的工作表移至第一個位置。這個限制來自於簡化流程:大多數使用者只需要單一表格,而一次處理多個工作表會大幅增加輸出結構的複雜度(例如產生物件陣列中的陣列)。
為何公式無法被計算
XLSX 儲存公式(如 =A1+B1)時,檔案中會同時儲存「最後計算的值」(cached value,即上次儲存時 Excel 顯示的結果)以及公式本身。這個轉換工具只讀取 cached value,不會重新計算公式。因此如果公式依賴於其他未被載入的儲存格(例如跨工作表參照),或者公式是動態的(如 =RAND()),轉換結果可能不準確。換句話說,你得到的永遠是 Excel 上次儲存時快照的數值,而不是即時計算結果。
客戶端處理的私隱好處
因為轉換完全在瀏覽器內執行,你的 XLSX 檔案無需上傳到任何伺服器。這對於包含敏感資料(客戶名單、財務數據、內部報告)的檔案特別重要。原理是瀏覽器會解析檔案並在你的裝置上寫入轉換後的輸出。整個過程的網絡流量為零。
錯誤處理與限制
工具會檢查以下情況並顯示對應錯誤訊息:
- 無法解析 XLSX 檔案:「This Excel file could not be opened.」
- 第一個工作表沒有資料列:「This file has no table rows.」
- 檔案超過大小上限:顯示「This file is too large. Use a file under ‹max›.」
- 表格超過最大行數(10,000 行)或列數(200 列):顯示對應錯誤。
- 上傳非 XLSX/CSV/JSON 檔案:「Choose a CSV, JSON or XLSX file.」
- 其他轉換錯誤:「Could not convert this file.」
- 使用者取消:「Conversion cancelled.」
- 轉換逾時:「This conversion is taking too long. Try a smaller file.」
這些錯誤確保使用者不會得到損壞或不完整的輸出。
後續數據驗證
由於合併儲存格、空列、隱藏欄位在 XLSX 中常見,轉換後的 JSON 可能包含意外結果。例如,合併儲存格只會在左上角儲存格有值,其他格子為空(null 或空字串)。建議下載後用 JSON 檢查器檢查是否有連續的空值。另外,如果表頭跨越多行(如第一行合併標題、第二行才是實際欄位名),則 JSON 的鍵會從第一行取得,可能導致欄位名稱奇怪。
常見問題 (FAQ)
1. 我可以一次轉換多個工作表嗎?
不可以。工具只處理第一個工作表。你需要將其他工作表抽出成獨立 XLSX 檔案,或使用專業的離線工具。
2. 日期在 JSON 中變成數字,如何恢復為日期?
日期儲存格會轉換為 ISO 8601 格式的字串,例如 "2023-08-15T00:00:00.000Z"。如果你需要不同的格式,則必須對 JSON 進行後續處理。
3. 為什麼公式結果不準確?
因為工具不重新計算公式,只讀取上次儲存時 Excel 計算的結果。如果公式依賴於外部連結或未載入的數據,可能會顯示舊值。請在 Excel 中先將公式轉為值(貼上為值)再轉換。
4. 轉換後的 JSON 檔案很大,有辦法壓縮嗎?
JSON 本身可用 gzip 壓縮傳輸。但工具只輸出標準 JSON。你可以在下載後用其他工具壓縮,或考慮只保留所需欄位。
5. 如果我的 XLSX 檔案有密碼保護,可以轉換嗎?
不可以。工具無法讀取受密碼保護的.xlsx 檔案(瀏覽端無法解密)。請先移除保護。
6. 合併儲存格會如何處理?
合併儲存格只會在第一個(左上角)儲存格保留值,其餘合併區域的儲存格輸出為空字串。建議在 Excel 中取消合併並填滿所有儲存格後再轉換。