專案情況
本文接上篇TableML Excel編譯/解析工具,本文主要介紹GUI工具的使用,及配置項,如果你想了解此工具更加詳細的說明,請閱讀上篇文章。
專案地址:https://github.com/zhaoqingqing/TableML
專案介紹和更新日誌
專案介紹
TableML, Table Markup Language, 基於電子表格的標記語言,
類似JSON, XML, INI,TableML可以作為軟體專案的配置標記語言,
與之不同的是,您可以使用Excel等電子表格編輯軟體來配置TableML,自由地新增圖示、註釋、VB指令碼和預編譯指令,再由TableML編譯器匯出乾淨的TSV格式的配置表表格,編輯方便,使用簡單。
目前提供C#版本的執行時、編譯器、程式碼生成器。
更新日誌
https://github.com/zhaoqingqing/TableML/blob/custom/update_log.md
實現原理和功能介紹
技術原理
使用C#語言開發,底層使用NPOI庫解析Excel,對npoi再次封裝,簡化開發難度。
通過模版引擎由Excel資料結構填充,生成對應的程式碼,無需人工編寫讀表程式碼。
Winform開發GUI介面 ,降低使用難度,給非技術類同事提供友好介面。
支援把解析後的Excel資料插入到資料庫中。
功能介紹
感謝Mr.Kelly的開源專案,我基於Kelly的TableML基礎上進行擴充套件(https://github.com/mr-kelly/TableML),增加或修改以下功能:
- 擴充套件支援多種格式的Excel配置 檔案 ,比如首列為註釋列,表頭列在自定義行
- 如果某列不需要,可以把表頭列項置空
- 支援可以為每一個Excel生成一個單獨的C#檔案類
- 支援把資料插入到sql資料庫中,並生成sql指令碼(資料庫指令碼語言)
- 提供GUI介面,原本已提供命令列模式
- GUI支援檔案拖動編譯單個Excel,和編譯某個檔案的Excel,或者直接讀取tsv檔案
- GUI上同時開發了輔助工具,用於檢查Excel資料的合法性,欄位名是否重複
技術支援
如果在使用過程中遇到問題或發現bug,歡迎與我聯絡。
我的郵箱:569032731@qq.com
TableML-GUI
讀懂配置檔案
tablemlGUI.exe目前提供一份簡易的xml配置檔案,用於初始化tableml-gui
開啟tablemlGUI.exe所在的目錄,找到app.config
(建議使用notepad++,sublime text,editplus等可以高亮xml關鍵詞和語法,減少改錯機率)
在app.config中,每一條重要的配置項都新增了註釋說明(<!--中間是註釋說明 -->
),比如:
<!--是否使用絕對路徑;true:所有路徑都是絕對的,完整路徑;false:所有路徑是相對於此exe的--> <add key="UseAbsolutePath" value="false" /> <!--excel原始檔路徑--> <add key="srcExcelPath" value=".\..\Src\" /> <!--excel編譯後的database儲存路徑--> <add key="DBPath" value=".\..\client_setting\data.db" />
是否使用絕對路徑?
UseAbsolutePath是一項重要配置,它決定整個應用程式中上涉及到的路徑是相對路徑還是絕對路徑。
絕對路徑是指一個檔案的完整路徑,完整到碟符,路徑不包含..\之類的。
我是絕對路徑:c:\work\plan\005ConfigTable\client_tool\TableMLGUI.exe
我是相對路徑:..\client_tool\TableMLGUI.exe
有些路徑我不知道填?
客戶端讀表程式碼路徑 和 客戶端專案tml路徑 ,這兩項如果你不需要用到,那就保持預設值,不用修改
如果你是一名策劃,只需要導表,那你基本就只需要修改DBPath為客戶端的路徑。
GUI工具使用
主介面預覽
編譯全部或部分
-
編譯並插入到sqlite中
- 如果你需要編譯某個目錄下全部的excel並把編譯結果播放到sqlite中,就選擇它。
- 編譯指定的幾個excel(如果僅僅想編譯指定的幾個excel,把要的excel拖到框中,選擇 編譯上面框中的excel)
其它功能
命令列支援
GUI同時提供命令列引數功能,目前支援單個或批量編譯全部的excel,並將資料插入到sqlite中,它是一個bat,雙擊就OK了。
命令列使用示例:
編譯某個目錄下的所有excel:
cd /d %~dp0 start TableMLGUI.exe all
輔助功能
這裡是一些輔助的功能,你可以看看。
標題中的組是指把某類功能放在一個組,一個統一的皮膚下。
組- For CSharp版本使用
根據Excel生成對應的C#程式碼,並拷貝到對應的目錄下
如果是把資料插入到sqlite中,這部分功能不會用到,我們目前就是。
組- 檢查Excel錯誤
當你的表在匯出出現錯誤,可以選擇性的使用這裡的一些功能對excel進行檢查
組- 其它
這裡是一些資料夾開啟類的功能
其它功能
在編譯excel後,會在應用程式目錄生成一個compile_result.csv,當源始Excel檔名並不能直接用作程式碼檔名,或excel檔名有中文時,方便策劃和程式對接時檢視。
表中記錄示例:
編譯後tsv[檔名] 源始Excel檔名
scene_config 場景配置表.excel