TableML-GUI篇(C# 编译/解析 Excel/CSV工具)
项目情况
本文接上篇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篇(C# 编译/解析 Excel/CSV工具)的更多相关文章
- ExcelReader(解析Excel的工具类)
package cn.com.css.common.util; import java.io.IOException; import java.io.InputStream; import java. ...
- POI解析Excel封装工具
1. [代码][Java]代码 跳至 [1] [全屏预览] ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2 ...
- Java解析Excel之应用Reflection等技术实现动态读取
目录树 背景 技术选型 问题分析 技术要点及难点分析 源码分析 测试用例 背景 Tip:因为产品提的需求我都开发完了,进行了项目提测:前天老大走过来说:你用spring-boot开发一个解析Excel ...
- TableML-GUI篇(Excel编译/解析工具)
项目情况 本文接上篇TableML Excel编译/解析工具,本文主要介绍GUI工具的使用,及配置项,如果你想了解此工具更加详细的说明,请阅读上篇文章. 项目地址:https://github.com ...
- TableML Excel编译/解析工具
TableML TableML, Table Markup Language, 基于电子表格的标记语言, 类似JSON, XML, INI,TableML可以作为软件项目的配置标记语言, 与之不同的是 ...
- <JVM下篇:性能监控与调优篇>03-JVM监控及诊断工具-GUI篇
笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 同步更新:https://gitee.com/vectorx/NOTE_JVM https://codechina.cs ...
- Oracle PLSQL读取(解析)Excel文档
http://www.itpub.net/thread-1921612-1-1.html !!!https://code.google.com/p/plsql-utils/ Introduction介 ...
- 手动解析Excel获取文件元数据
工作中有遇到需要获取上传的Excel文件的列明.最大行数.大小等元数据信息.通常做法是通过Apache的POI工具加载文件然后再读取行列进行处理.这种方法很大的弊端就是需要把excel文件加载到内存, ...
- Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
1.简介 本文主要给大家介绍了关于Laravel 5用Laravel Excel实现Excel/CSV文件导入导出的相关内容,下面话不多说了,来一起看看详细的介绍吧. Laravel Excel 在 ...
随机推荐
- 1.python简介
简介 1.python语言介绍 python的创始人:Guido Van Rossum 2.python是一门什么样的语言 编程语言主要从以下几个角度进行分类:编译型,静态型,动态性,强类型定义语言和 ...
- BBS论坛(三)
3.1.cms用户名渲染和注销功能实现 显示登录的用户名 (1)app/cms/hooks.py from .views import bp import config from flask impo ...
- web Components 学习之路
就目前而言,纯粹的Web Components在兼容性方面还有着较为长远的路,这里做个记录总结,以纪念自己最近关于Web Components的学习道路. 参考教材 JavaScript 标准参考教程 ...
- VueJs 监听 window.resize 方法
Vuejs 本身就是一个 MVVM 的框架. 但是在监听 window 上的 事件 时,往往会显得 力不从心. 比如 这次是 window.resize 恩,我做之前也是百度了一下.看到大家伙都为这个 ...
- 《HelloGitHub月刊》第 10 期
前言 这一年感谢大家的支持,小弟这里给大家拜年了! <HelloGitHub月刊>会一直做下去,欢迎大家加入进来提供更多的好的项目. 最后,祝愿大家:鸡年大吉- <HelloGitH ...
- 面试小知识:MySQL索引相关
前言 本模板主要是一些面试相关的题目,对于每一道问题,我会提供简单的解答,答案的来源主要是基于自己看了各方资料之后的理解,如果有错的,欢迎指点出来. 1. 什么是最左前缀原则? 以下回答全部是基于My ...
- 环境与工具2:建立高效的mac环境
你的工作与生活离不开电脑,电脑是一个工具,也是一个环境.环境是不是绿水青山,是不是得心应手,这是很重要的事情.小程平时使用macbook来学习跟娱乐,最近重装了系统,很多环境与工具都需要重新组建. 那 ...
- 补习系列(7)-springboot 实现拦截的五种姿势
目录 简介 姿势一.使用 Filter 接口 1. 注册 FilterRegistrationBean 2. @WebFilter 注解 姿势二.HanlderInterceptor 姿势三.@Exc ...
- angr进阶(4)从任意位置开始
从程序的任意位置开始可以大大的减少测试的时间,使用的方法是控制程序运行到某时刻的寄存器的值来进行的.asisctffinals2015_fake p = angr.Project("fake ...
- Swing——简单的计算器
前言 这是博主学习完Swing后,使用Swing实现的一个简单计算器.做简单的计算器的目的是将最近所学的Swing给应用起来,写博文介绍的目的是记录做这个计算器的思路.下面将分为界面和事件两部分介绍. ...