TableML-GUI篇(C# 編譯/解析 Excel/CSV工具)

weixin_33816946發表於2017-08-28

專案情況

本文接上篇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工具使用

主介面預覽

image

編譯全部或部分
  • 編譯並插入到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

 

相關文章