sqliteTableML Excel编译/解析工具

TableML

TableML, Table 马克up Language, 基于电子表格的号子语言,

看似JSON, XML, INI,TableML可以视作软件项目标陈设标记语言,

与之差其他是,您可以使用Excel等电子表格编辑软件来布局TableML,自由地添加图标、注释、VB脚本和预编译指令,再由TableML编译器导出干净的TSV格式的配置表表格,编辑方便,使用简便。

眼前提供C#本子的运转时、编译器、代码生成器。

 

感谢Mr.凯利的开源项目,我根据凯利的TableML基础,开展增加扩大或涂改部分机能

原有版本地址:https://github.com/mr-kelly/TableML

扩大版本地址:https://github.com/zhaoqingqing/TableML

 

Example

你可以使用Excel编译如下内容,并保留为文件setting/test.xls:

sqlite 1

excel测试文件地方:https://github.com/zhaoqingqing/TableML/blob/custom/TableML/TableMLTests/TestSettings/TestExcel.xls

 

然后选用TableML命令行编译器:

TableML.exe --Src setting --To setting2 --CodeFile Code.cs

 

实施后,将会生成setting2/test.tml文件,打开方可瞥见编译后内容:

Id

Value

int

string
1 Abcdefg
2 Yuiop

此外附带一份Code.cs,自动生成的代码。

 

TableML编辑规则

上述的例证中,显示了TableML的超过一半特征:

  • TableML使用Excel等电子表格软件作为编辑器,并由此编译器导出成tml格式文件
  • tml格式文件精神是TSV格式,即Tab Sperated Values,类似CSV
  • 行头占3行:
    • 第1行是列名
    • 第2行是列的音信,平常是声称列的种类,可以自定义
    • 第3行是列的注释
    • 而外的所有行为内容
  • 列名内容以#起来或Comment开首,改列被视为注释列,编译器忽略
  • 行内容的率先个单元格内容,以#开班或Comment早先,改行被视为注释行,编译器忽略
  • 可以运用预编译指令#if和#endif,条件式控制编译的行

 

工程运用表明

  1. 经过git clone 或者download master的措施将工程下载到本地
  2. 提议拔取visual studio2012及更高版本打开 TableML\TableML.sln
  3. 在vs中设置TableMLCompilerConsole
    为启动项目(解决方案面板,选中项目,右键设为启动项目)
  4. 提出把项目标输出设为Release,然后接纳 菜单栏生成
    生成TableMLCompilerConsole
  5. 打开目录 TableML\TableMLCompilerConsole\bin\Release
    可以见见已经成形了TableML.exe

 

工程简介

TableML

  • tml(tsv)文件读取接口,把tsv文件读取至内存,供应用程序访问

 

TableMLCompiler

  • 对excel/csv 源文件进行编译,解析配置表规则生成tsv文件

 

TableMLCompilerConsole

  • 提供命令行,根据规则对excel举行编译

 

TableMLGUI

 

TableMLTests

  • 编译作用的单元测试

自定义配置

以下职能可以进行自定义或者是本身增加的意义:

1. 从第2列(指定列)开始读

​ 修改SimpleExcelFile.cs中的StartColumnIdx值如:

   public const int StartColumnIdx = 1;

2.种种表对应一个Class文件

调用方法如下:

batchCompiler.CompileTableMLAllInSingleFile(srcDirectory, OutputDirectory, CodeFilePath, templateString, "AppSettings", ".tml", null, true);

以身作则代码可参照:LocalDebug.cs中的CompileAll()

 

3.修改生成的代码模版

修改TableML.Compiler.DefaultTemplate中的字符串模版

 

4.留下指定行,自定义行,比如第6行是字段名,第8行是数据类型,第15行是字段注释

扩展SimpleExcelFile.PreserverRowCount = 预留行

修改SimpleExcelFile.ParseExcel中的Worksheet.GetRow(5);

excel读取规则

先读取Excel的行,再读取列,把数量写入到tml文件中。

 

GUI工具内存溢出

比方在利用TableMLGUI时,更加占用内存,提出把excel另存为csv格式,或者收缩单个excel文件的轻重,以减小内存占用。

 

愈来愈多职能

For SQL数据库

TableMLGUI提供一键将excel数据插入到sqlite中。

应用sql的业务机制,在插入多量多少的条件下,耗时更短。

再就是在决定台出口sql语句方便调试查错。

 

机关读取配置代码生成

TableML编译器内置Liquid模板引擎。您可以自定义模板内容,来为分歧的语言生成读表类。

TableML是KSFramework的一有些,用于游戏配置表读取代码,协理热重载、分表等编制。

 

TableML for C#/Mono/Xamarin

TableML目前只提供C#本子。当前TableML使用基于Xamarin
Studio开发,TableML的C#本子具备了跨平台特色(Windows/Mac/Linux)。

相关文章

网站地图xml地图