zoukankan      html  css  js  c++  java
  • 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_settingdata.db" />

    是否使用绝对路径?

    UseAbsolutePath是一项重要配置,它决定整个应用程序中上涉及到的路径是相对路径还是绝对路径。

    绝对路径是指一个文件的完整路径,完整到盘符,路径不包含..之类的。

    我是绝对路径:c:workplan05ConfigTableclient_toolTableMLGUI.exe

    我是相对路径:..client_toolTableMLGUI.exe

    有些路径我不知道填?

    客户端读表代码路径 和 客户端项目tml路径 ,这两项如果你不需要用到,那就保持默认值,不用修改

    如果你是一名策划,只需要导表,那你基本就只需要修改DBPath为客户端的路径。

    GUI工具使用

    主界面预览

    image

    编译全部或部分
    • 编译并插入到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
       

  • 相关阅读:
    【Qt】Qt软件打包发布
    最大公约数最小公倍数
    random实现验证码
    sort 和sorted的 区别
    Python-内置数据结构之元组(tuple)
    BZOJ 1112 线段树
    POJ 1682 DP
    POJ 1671 第二类斯特林数
    BZOJ 1592 DP
    POJ 1636 DFS+DP
  • 原文地址:https://www.cnblogs.com/zhaoqingqing/p/7440867.html
Copyright © 2011-2022 走看看