天天看點

TableML Excel編譯/解析工具

TableML, Table Markup Language, 基于電子表格的标記語言,

類似JSON, XML, INI,TableML可以作為軟體項目的配置标記語言,

與之不同的是,您可以使用Excel等電子表格編輯軟體來配置TableML,自由地添加圖示、注釋、VB腳本和預編譯指令,再由TableML編譯器導出幹淨的TSV格式的配置表表格,編輯友善,使用簡單。

目前提供C#版本的運作時、編譯器、代碼生成器。

您可以使用Excel編譯如下内容,并儲存為檔案setting/test.xls:

TableML Excel編譯/解析工具

然後使用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,如需轉載請自行聯系原作者

繼續閱讀