TableML-GUI篇(Excel编译/解析工具)
项目情况
本文接上篇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 | 场景配置表.xls |
| item_config | 道具配置表.xls |
TableML-GUI篇(Excel编译/解析工具)的更多相关文章
- TableML Excel编译/解析工具
TableML TableML, Table Markup Language, 基于电子表格的标记语言, 类似JSON, XML, INI,TableML可以作为软件项目的配置标记语言, 与之不同的是 ...
- TableML-GUI篇(C# 编译/解析 Excel/CSV工具)
项目情况 本文接上篇TableML Excel编译/解析工具,本文主要介绍GUI工具的使用,及配置项,如果你想了解此工具更加详细的说明,请阅读上篇文章. 项目地址:https://github.com ...
- Go第十一篇之编译与工具
Go 语言的工具链非常丰富,从获取源码.编译.文档.测试.性能分析,到源码格式化.源码提示.重构工具等应有尽有. 在 Go 语言中可以使用测试框架编写单元测试,使用统一的命令行即可测试及输出测试报告的 ...
- Json解析工具Jackson(使用注解)
原文http://blog.csdn.net/nomousewch/article/details/8955796 接上一篇文章Json解析工具Jackson(简单应用),jackson在实际应用中给 ...
- Excel通用类工具(二)
前言 上一篇中写到了用反射来处理类中的不用的属性,但是Excel的列名还得手动输入,这样还是比较麻烦的,今天这篇就利用自定义注解来解决手动传入列名的问题:其实很简单的,只需要在上一篇的基础上加一个类就 ...
- <JVM下篇:性能监控与调优篇>03-JVM监控及诊断工具-GUI篇
笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 同步更新:https://gitee.com/vectorx/NOTE_JVM https://codechina.cs ...
- Excel解析工具easyexcel全面探索
1. Excel解析工具easyexcel全面探索 1.1. 简介 之前我们想到Excel解析一般是使用POI,但POI存在一个严重的问题,就是非常消耗内存.所以阿里人员对它进行了重写从而诞生了eas ...
- 读取EXCEL文档解析工具类
package test;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException ...
- 通过swagger json一键解析为html页面、导出word和excel的解析算法分享
写在前面: 完全通过Spring Boot工程 Java代码,将swagger json 一键解析为html页面.导出word和execel的解析算法,不需要任何网上那些类似于“SwaggerMark ...
随机推荐
- 三元运算符2>1?true:false;
1.说明: xxx?xxx:xxx; 第一个'xxx'是写条件语句,条件自己根据需求定 第二个'xxx'是当条件为真时会得到的值 第三个'xxx'是当条件为假时会得到的值 2.例子: 代码: bool ...
- Struts2-Tiles整合
Apache Tiles是一个JavaEE应用的页面布局框架.Tiles框架提供了一种模板机制,可以为某一类页面定义一个通用的模板,该模板定义了页面的整体布局.布局由可以复用的多个块组成,每个页面可以 ...
- c# word文档与二进制数据的相互转换
最近项目出使用到了将word文档以二进制的方法存到数据库中,并再次读取出二进制数据转换为word文档.最后总结了一下,不多说看示例方法: 代码 , content.Length); ...
- 前端面试题系列(1):doctype作用 标准模式与兼容模式
1.doctype作用 <!DOCTYPE>声明位于HTML文档的第一行.处于<HTML>标签之前.告知浏览器的解析器用什么文档标准解析这个文档.DOCYTYPE不存在或格式不 ...
- 根据自己的博客数据统计国内IT人群
装上百度统计有一段时间了,今天突然找出报表看看,发现一个很有意思的事情.访问来源TOP5依次是:北京,上海,深圳,杭州,广州 虽然大部分文章都是当时特别白的时候记录下来的遇到过的问题,但受众确实应该只 ...
- C#学习笔记随笔(1)----C#中static关键字的作用
静态分配的,有两种情况: 1. 用在类里的属性.方法前面,这样的静态属性与方法不需要创建实例就能访问, 通过类名或对象名都能访问它,静态属性.方法只有“一份”:即如果一个类新建有N个 对象,这N 个对 ...
- Json解析封装GsonUtil
感觉Json解析都快谈不上一门技术了,在Android Studio上可以直接使用JsonFormat插件,一键就解析出Json所转换的Javabean,再配合GsonUtil的使用,Json解析的步 ...
- 【Centos】解决设置JAVA_HOME不断失效问题
问题还原: 我们都知道,要修改centos的全局配置,可以在/etc/profile这个文件里面修改,比如,我需要修改JAVA_HOME变量 ,那么一般来说我们只要在其中修改,source 一下就行了 ...
- 免费人脸识别APi
今天对应一些免费的人脸识别的api 做了一下简单的对比,觉得百度开发出来的人脸识别接口还是最符合的我的要求,简单易用,容易上手. 据说百度的一些门禁也使用上了人脸识别的功能了,功能很强大,而且能识别出 ...
- unity中.meta提交错误操作导致空脚本
工作时遇到了一个奇葩的问题,同事做的界面,再策划那里死活无法运行,其他同事的都没有问题.简单一查,是界面上挂了个空脚本,但是同事提交了对应的脚本,其他人那里脚本是正常.随后想到是否是.meta的问题. ...