將 Excel 表格轉換成程式碼陣列
這個工具的功能
Excel 以列和欄儲存資料,而多數程式語言會把相同的資料當作陣列來使用。這個工具會讀取開啟的活頁簿(XLSX、XLS、CSV 或 ODS,最大 10 MB),解析其中的工作表,並把儲存格方格改寫成可直接貼上的陣列字面值,語言可選 JavaScript、Python、Java、C#、PHP、Go、Ruby 或 Rust。可輸出與原始方格一致的二維陣列,或以標題列為鍵的物件陣列。
由於輸出是依工作表的實際結構產生,而非套用固定範本,檔案裡有哪些欄與列,你在程式碼中就會拿回哪些。
何時適合使用
需要把試算表資料直接寫進程式碼、而不是在執行時載入時,就很適合用它:測試的種子資料、查找表、測試資料、寫死的設定,或原型用的快速模擬資料。這樣就不必自己寫解析器,也不必手動輸入幾十列。在 Excel 中維護參考資料的分析人員,可以交給開發人員可直接貼上的字面值;開發人員也能把客戶的試算表直接轉成專案已在使用的語法。通常還會遇到兩件事:日期會依 Excel 顯示的文字輸出,例如 2024-01-15,若某欄存放的是 Unix 時間戳記,可用時間戳轉換器讀回;而如果目的地是資料檔案而不是原始碼,CSV ↔ JSON 轉換器會更合適。
具體範例
假設工作表的標題列是 Name、Age、Active,後面接著資料列。開啟「將第一列作為標題」並選擇 JavaScript 的物件陣列輸出,會得到 `const data = [ {Name: "Alice", Age: 30, Active: "TRUE"}, ... ];`。關閉標題並切換為二維陣列,同一個工作表就會變成 `[["Name","Age","Active"], ["Alice","30","TRUE"], ...]`。開啟型別偵測時,物件陣列輸出中的 30 會保持為數字,而不是加引號的文字。
注意事項與特殊情況
活頁簿包含多個工作表時,會先轉換第一個,直到從工作表清單選擇其他工作表。儲存格會依 Excel 顯示的樣子輸出,因此日期會是 2024-01-15 這樣的文字,而不是序列值。使用物件陣列輸出時,自動型別偵測會把數字文字轉成實際的數字;當該欄確實是文字時,例如開頭帶 0 的郵遞區號或 ID 代碼,請將它關閉,讓每個儲存格保留為字串。