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 ...
随机推荐
- python3基础视频教程
随着目前Python行业的薪资水平越来越高,很多人想加入该行业拿高薪.有没有想通过视频教程入门的同学们?这份Python教程全集等你来学习啦! python3基础视频教程:http://pan.bai ...
- WPF学习之路一
前段时间一直在学习MVC,工作需要,现在需要180度急转弯,搞WPF,MVVM,只能找资料学习了. WPF中有一个消息机制,就是当前台控件绑定的值改变时,会自动通知到指定的事件来改变VM的值,反之亦然 ...
- Redis轻快入门
Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工作由VMware主 ...
- web前端-----第一弹html
HTML 初识 web服务本质 import socket def main(): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s ...
- 使用sshkey的方式访问gitlab
在使用jenkins创建jobs的时候配置git为ssh访问的方式报错 记录错误信息 Failed to connect to repository : Command "/usr/bin/ ...
- IIS发布网站浏览之后看到的是文件目录 & Internal Server Error 处理程序“ExtensionlessUrlHandler-ISAPI-4.0_64bit”在其模块列表中有一个错误模块“IsapiModule” 解决方法 & App_global.asax.pduxejp_.dll”--“拒绝访问。 ”
Q:IIS发布网站浏览之后看到的是文件目录 A:它出现了一个说到.NET4.0 更高框架什么的错误,所以我将 .NTE CRL版本由4.0改为2.0了,改为2.0后就出现了只能浏览文件目录了.改为4. ...
- 非关系型数据库redis-java基本操作
概述 redis是一个key-value的nosql数据库(非关系型数据库).支持存储的value类型包括string(字符串).list(链表).set(集合).zset(sorted set -- ...
- 常见优化算法统一框架下的实现:最速下降法,partan加速的最速下降法,共轭梯度法,牛顿法,拟牛顿法,黄金分割法,二次插值法
常见优化算法实现 这里实现的主要算法有: 一维搜索方法: 黄金分割法 二次差值法 多维搜索算法 最速下降法 partan加速的最速下降法 共轭梯度法 牛顿法 拟牛顿法 使用函数表示一个用于优化的目标, ...
- 《java.util.concurrent 包源码阅读》14 线程池系列之ScheduledThreadPoolExecutor 第一部分
ScheduledThreadPoolExecutor是ThreadPoolExecutor的子类,同时实现了ScheduledExecutorService接口. public class Sche ...
- 微信公众号 Cookie
微信公众号开发中,使用cookie和session来存储用户状态. 但总会出现一些空的连接,cookie为[],访问路径为"\" 拦截请求输出为header为: ;Connecti ...