项目情况

本文接上篇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工具)的更多相关文章

  1. ExcelReader(解析Excel的工具类)

    package cn.com.css.common.util; import java.io.IOException; import java.io.InputStream; import java. ...

  2. 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 ...

  3. Java解析Excel之应用Reflection等技术实现动态读取

    目录树 背景 技术选型 问题分析 技术要点及难点分析 源码分析 测试用例 背景 Tip:因为产品提的需求我都开发完了,进行了项目提测:前天老大走过来说:你用spring-boot开发一个解析Excel ...

  4. TableML-GUI篇(Excel编译/解析工具)

    项目情况 本文接上篇TableML Excel编译/解析工具,本文主要介绍GUI工具的使用,及配置项,如果你想了解此工具更加详细的说明,请阅读上篇文章. 项目地址:https://github.com ...

  5. TableML Excel编译/解析工具

    TableML TableML, Table Markup Language, 基于电子表格的标记语言, 类似JSON, XML, INI,TableML可以作为软件项目的配置标记语言, 与之不同的是 ...

  6. <JVM下篇:性能监控与调优篇>03-JVM监控及诊断工具-GUI篇

    笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 同步更新:https://gitee.com/vectorx/NOTE_JVM https://codechina.cs ...

  7. Oracle PLSQL读取(解析)Excel文档

    http://www.itpub.net/thread-1921612-1-1.html !!!https://code.google.com/p/plsql-utils/ Introduction介 ...

  8. 手动解析Excel获取文件元数据

    工作中有遇到需要获取上传的Excel文件的列明.最大行数.大小等元数据信息.通常做法是通过Apache的POI工具加载文件然后再读取行列进行处理.这种方法很大的弊端就是需要把excel文件加载到内存, ...

  9. Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解

    1.简介 本文主要给大家介绍了关于Laravel 5用Laravel Excel实现Excel/CSV文件导入导出的相关内容,下面话不多说了,来一起看看详细的介绍吧. Laravel Excel 在 ...

随机推荐

  1. 记录eclipse安装SpringBoot插件及搭建SpringBoot项目

    刚学习了下SpringBoot 插件安装 创建项目在此记录下 在spring官网上下载相关的插件,然后导入到eclipse中,以下是下载步骤: 1.首先查看自己eclipse版本号 help--> ...

  2. ASP.NET Core 2.1 Web API + Identity Server 4 + Angular 6 + Angular Material 实战小项目视频

    视频简介 ASP.NET Core Web API + Angular 6的教学视频 我是后端开发人员, 前端的Angular部分讲的比较差一些, 可以直接看代码!!!! 这是一个小项目的实战视频, ...

  3. 【jQuery】(1)---初次接触Jquery

    1.浅理解Jquery:jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTML documents.events.实现动画效果,并且方便地为网站提供AJAX交互. 2.D ...

  4. 如何为ASP.NET Core的强类型配置对象添加验证

    原文: Adding validation to strongly typed configuration objects in ASP.NET Core 作者: Andrew Lock 译文: La ...

  5. asp.net core AuthenticationMiddleware 在WebApi中的的使用

    在.net framework 4.5架构下使用认证(Authentication)授权(Authorization). IIS使用HttpModule进行认证(Authentication),我们可 ...

  6. asp.net core 系列 4 注入服务的生存期

    一.服务的生存期 在容器中每个注册的服务,根据程序应用需求都可以选择合适的服务生存期,ASP.NET Core 服务有三种生存期配置: (1) Transient:暂时生存期,在每次请求时被创建. 这 ...

  7. C#版 - Leetcode 633. 平方数之和 - 题解

    版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - L ...

  8. linux文本处理三剑客的学习

    linux下有三个文本处理的神器.分别是grep,sed,awk.功能都是比较强大的. grep帮助: http://my-study-grep.readthedocs.io/en/latest/ s ...

  9. Java开发知识之Java面相对象

    Java开发知识之Java面相对象上 一丶什么是面相对象 了解什么什么是面相对象.那么首先要了解什么是面相过程. 面相过程的意思就是. 什么事情都亲力亲为. 比如上一讲的排序算法. 我们自己写的. 这 ...

  10. 10年架构师告诉你,他眼中的Spring容器是什么样子的

    相关文章 如何慢慢地快速成长起来? 成长的故事之Spring Core系列 你是如何看待Spring容器的,是这样子吗? Spring的启动过程,你有认真思考过吗?(待写) 面向切面编程,你指的是Sp ...