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 在 ...
随机推荐
- 记录eclipse安装SpringBoot插件及搭建SpringBoot项目
刚学习了下SpringBoot 插件安装 创建项目在此记录下 在spring官网上下载相关的插件,然后导入到eclipse中,以下是下载步骤: 1.首先查看自己eclipse版本号 help--> ...
- ASP.NET Core 2.1 Web API + Identity Server 4 + Angular 6 + Angular Material 实战小项目视频
视频简介 ASP.NET Core Web API + Angular 6的教学视频 我是后端开发人员, 前端的Angular部分讲的比较差一些, 可以直接看代码!!!! 这是一个小项目的实战视频, ...
- 【jQuery】(1)---初次接触Jquery
1.浅理解Jquery:jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTML documents.events.实现动画效果,并且方便地为网站提供AJAX交互. 2.D ...
- 如何为ASP.NET Core的强类型配置对象添加验证
原文: Adding validation to strongly typed configuration objects in ASP.NET Core 作者: Andrew Lock 译文: La ...
- asp.net core AuthenticationMiddleware 在WebApi中的的使用
在.net framework 4.5架构下使用认证(Authentication)授权(Authorization). IIS使用HttpModule进行认证(Authentication),我们可 ...
- asp.net core 系列 4 注入服务的生存期
一.服务的生存期 在容器中每个注册的服务,根据程序应用需求都可以选择合适的服务生存期,ASP.NET Core 服务有三种生存期配置: (1) Transient:暂时生存期,在每次请求时被创建. 这 ...
- C#版 - Leetcode 633. 平方数之和 - 题解
版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - L ...
- linux文本处理三剑客的学习
linux下有三个文本处理的神器.分别是grep,sed,awk.功能都是比较强大的. grep帮助: http://my-study-grep.readthedocs.io/en/latest/ s ...
- Java开发知识之Java面相对象
Java开发知识之Java面相对象上 一丶什么是面相对象 了解什么什么是面相对象.那么首先要了解什么是面相过程. 面相过程的意思就是. 什么事情都亲力亲为. 比如上一讲的排序算法. 我们自己写的. 这 ...
- 10年架构师告诉你,他眼中的Spring容器是什么样子的
相关文章 如何慢慢地快速成长起来? 成长的故事之Spring Core系列 你是如何看待Spring容器的,是这样子吗? Spring的启动过程,你有认真思考过吗?(待写) 面向切面编程,你指的是Sp ...