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 ...
随机推荐
- Mybatis面试整理
#{}和${}的区别 #{}是预编译处理,${}是字符串替换. Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值: Mybatis ...
- windows下配置php + mysql环境
一.php服务器环境:apache + php安装与配置 1.下载apache.(httpd.apache.com) apache官网只提供源码,编译文件会有跳转到别的网站的下载地址. 如需VC9或V ...
- Python小爬虫
网页解析器下载网址: http://www.crummy.com/software/BeautifulSoup/ ...
- MyBatis 一、二级缓存和自定义缓存
1.一级缓存 MyBatis 默认开启了一级缓存,一级缓存是在SqlSession 层面进行缓存的.即,同一个SqlSession ,多次调用同一个Mapper和同一个方法的同一个参数,只会进行一 ...
- innobackupex: fatal error: no ‘innodb_buffer_pool_filename’解决方法
http://www.ttlsa.com/mysql/innobackupex-1-5-1-fatal-error-no-innodb_buffer_pool_filename/
- Java 中实现方法重试的一种机制
有这样一个需求,当调用某个方法抛出异常,比如通过 HttpClient 调用远程接口时由于网络原因报 TimeOut 异常:或者所请求的接口返回类似于"处理中"这样的信息,需要重复 ...
- ThinkPHP中浏览器友好输出函数
// 环境常量 define('IS_CLI', PHP_SAPI == 'cli' ? true : false); define('IS_WIN', strpos(PHP_OS, 'WIN') ! ...
- GraphicsMagick的命令行使用示例
GraphicsMagick是从 ImageMagick 5.5.2 分支出来的,但是现在他变得更稳定和优秀,GM更小更容易安装.GM更有效率.GM的手册非常丰富GraphicsMagick的命令与I ...
- sort学习 - LeetCode #406 Queue Reconstruction by Height
用python实现多级排序,可以像C语言那样写个my_cmp,然后在sort的时候赋给参数cmp即可 但实际上,python处理cmp 是很慢的,因为每次比较都会调用my_cmp:而使用key和rev ...
- [最短路]P1119 灾后重建
题目背景 B地区在地震过后,所有村庄都造成了一定的损毁,而这场地震却没对公路造成什么影响.但是在村庄重建好之前,所有与未重建完成的村庄的公路均无法通车.换句话说,只有连接着两个重建完成的村庄的公路才能 ...