TableML, Table Markup Language, 基于電子表格的标記語言,
類似JSON, XML, INI,TableML可以作為軟體項目的配置标記語言,
與之不同的是,您可以使用Excel等電子表格編輯軟體來配置TableML,自由地添加圖示、注釋、VB腳本和預編譯指令,再由TableML編譯器導出幹淨的TSV格式的配置表表格,編輯友善,使用簡單。
目前提供C#版本的運作時、編譯器、代碼生成器。
您可以使用Excel編譯如下内容,并儲存為檔案setting/test.xls:

然後使用TableML指令行編譯器:
執行後,将會生成setting2/test.tml檔案,打開可以看見編譯後内容:
Id
Value
int
string
1
Abcdefg
2
Yuiop
另外附帶一份Code.cs,自動生成的代碼。
以上的例子中,展示了TableML的大部分特性:
TableML使用Excel等電子表格軟體作為編輯器,并通過編譯器導出成tml格式檔案
tml格式檔案實質是TSV格式,即Tab Sperated Values,類似CSV
行頭占3行:
第1行是列名
第2行是列的資訊,通常是聲明列的類型,可以自定義
第3行是列的注釋
除外的所有行為内容
列名内容以#開頭或Comment開頭,改列被視為注釋列,編譯器忽略
行内容的第一個單元格内容,以#開頭或Comment開頭,改行被視為注釋行,編譯器忽略
可以使用預編譯指令#if和#endif,條件式控制編譯的行
通過git clone 或者download master的方式将工程下載下傳到本地
建議使用visual studio2012及更高版本打開 TableML\TableML.sln
在vs中設定TableMLCompilerConsole 為啟動項目(解決方案面闆,選中項目,右鍵 - 設為啟動項目)
建議把項目的輸出設為Release,然後選擇 菜單欄 - 生成 - 生成TableMLCompilerConsole
打開目錄 TableML\TableMLCompilerConsole\bin\Release 可以看到已經生成了TableML.exe
TableML
tml(tsv)檔案讀取接口,把tsv檔案讀取至記憶體,供應用程式通路
TableMLCompiler
對excel/csv 源檔案進行編譯,解析配置表規則生成tsv檔案
TableMLCompilerConsole
提供指令行,根據條件對excel進行編譯
TableMLGUI
提供GUI界面,增加編譯標明excel,将資料導入到sqlite中
增加excel的查錯,輸出記錄檔
TableMLTests
編譯功能的單元測試
以下功能可以進行自定義或者是我擴充的功能:
1. 從第2列(指定列)開始讀
修改SimpleExcelFile.cs中的StartColumnIdx值如:
2.每個表對應一個Class檔案
調用方法如下:
示例代碼可參考:LocalDebug.cs中的CompileAll()
3.修改生成的代碼模版
修改TableML.Compiler.DefaultTemplate中的字元串模版
4.預留指定行,自定義行,比如第6行是字段名,第8行是資料類型,第15行是字段注釋
先讀取Excel的行,再讀取列,把資料寫入到tml檔案中。
如果在使用TableMLGUI時,特别占用記憶體,建議把excel另存為csv格式,或者減少單個excel檔案的大小,以減少記憶體占用。
TableMLGUI提供一鍵将excel資料插入到sqlite中。
采用sql的事務機制,在插入大量資料的環境下,耗時更短。
同時在控制台輸出sql語句友善調試查錯。
TableML編譯器内置Liquid模闆引擎。您可以自定義模闆内容,來為不同的語言生成讀表類。
TableML目前隻提供C#版本。目前TableML使用基于Xamarin Studio開發,TableML的C#版本具備了跨平台特性(Windows/Mac/Linux)。
本文出自趙青青,原文連結:http://www.cnblogs.com/zhaoqingqing/p/7440980.html,如需轉載請自行聯系原作者