在遊戲開發、企業內部系統與 App 專案中,大量的設定值常常由企劃或營運人員用 Excel 維護——關卡數值、商品清單、文案對照表、費率表。工程師則需要在程式裡以型別安全的方式取用這些資料。
中間這段轉換若靠手工,欄位一多就容易出錯:漏一個欄位、型別打錯、命名不一致,而且每次企劃改表格就要重做一次。這個工具把這段機械性的工作自動化,讀取 Excel 的標題列與資料列,推論每個欄位的型別,直接產生對應語言的類別程式碼。
工具會掃描每個欄位的資料列,依下列順序判斷:
true / false → bool推論結果可以在介面上手動覆寫。這很重要,因為有幾種情況機器判斷不出來:
要留意的三種欄位
007 轉成 int 會變成 7),超過 15 位數還會失去精度。?、Kotlin 的 ?、C# 的 ?)。| 推論型別 | Swift | Kotlin | Java | C# | Objective-C |
|---|---|---|---|---|---|
| string | String | String | String | string | NSString * |
| int | Int | Int | Integer | int | NSInteger |
| double | Double | Double | Double | double | double |
| bool | Bool | Boolean | Boolean | bool | BOOL |
Java 產出的是 Integer、Double、Boolean 這類包裝型別而非 int、double 基本型別。這是刻意的——包裝型別可以是 null,能正確表達「這個欄位在資料中缺值」,基本型別則會被迫給一個例如 0 的預設值,容易混淆「真的是 0」與「沒有資料」。
工具能處理的表格結構愈單純,產出的程式碼品質愈好。幾個實務建議:
Excel 是二維表格,天生不擅長表達巢狀資料。若你的資料有階層關係(例如一個角色有多個技能),有兩種常見做法:
產出的類別是起點而非終點,通常還需要幾個步驟:
CodingKeys、Kotlin 需要 @SerialName、C# 需要 [JsonPropertyName]。Excel 檔案是由瀏覽器在本機讀取與解析的,檔案本身不會傳送到任何伺服器。用於解析的 SheetJS 函式庫程式碼由 CDN 載入,但你的檔案內容不會傳給該 CDN。
這代表即使表格中含有未公開的營運數值、價目表或客戶資料,也可以安心使用。完整說明請見隱私權政策。