当前位置: 首页 > 软件库 > 程序开发 > Excel开发包 >

XlsxToLua

Excel导出为Lua table工具
授权协议 未知
开发语言 C#
所属分类 程序开发、 Excel开发包
软件类型 开源软件
地区 国产
投 递 者 欧阳高昂
操作系统 Windows
开源组织
适用人群 未知
 软件概览

Excel表格数据导出为Lua table形式的工具,兼带数据检查功能

希望这个工具能为今后ulua手机游戏项目带来便利,使得策划可以用Excel进行配表,从而享受Excel各种强大的功能,而程序可以直接读取 lua table定义的数据使用,省去如果用CSV作为数据表所导致的每个文件都得专门去写解析文件并构造数据结构的麻烦。同时各种预设检查规则以及可以自己扩 展的检查规则可以帮助策划、程序进行数据导出前的查错,避免因为数据填写错误导致的上线事故

如果在使用中您觉得有些地方需要优化或者您有更好的方案,欢迎交流 我的QQ及对应邮箱是:2246549866@qq.com

推荐大家到ulua社区 http://www.ulua.org/ 下载使用非常棒的ulua热更新方案
感谢蒙大神的 CSToLua(https://github.com/topameng/CsToLua) 以及新推出的tolua#(https://github.com/topameng/tolua) 对ulua开发unity游戏带来的巨大效率提升
感谢众多为ulua社区做出贡献的大神 (http://bbs.ulua.org/article/ulua/uluacstoluagongxianyingxiongbang.html)

____________________________________________________________________________

更新日志

本文件仅列举版本新增功能的大致介绍,详细使用请参考“使用说明.txt”

======= V7.1 2017.12.5 ======
1、支持导出指定Excel文件夹下所有子文件夹中的Excel文件,并支持将生成的文件按原目录结构存储
2、针对上面新增功能,同步修改XlsxToLuaGUI工具,通过文件选择窗口进行各功能指定Excel文件选择后,将以新增方式追加到配置文本框中,而不再是覆盖方式
3、值范围检查规则适用于string、lang型,用于确保字符串长度在要求的范围内

======= V7.0 2017.10.25 ======
1、增加用于灵活配置不定参数的mspString类型以及对应的表格检查规则
2、修改LitJson类库,使得输出json中的中文等字符原样显示,而不是以Unicode编码形式显示

======= V6.7 2017.9.18 ======
1、取消array、dict类型最多只能嵌套两层的限制,取消dict型下属子元素类型不能为json和tableString的限制
2、导出csv文件中,如果array、dict型字段的某个数据用-1设为无效,其下属array、dict型子字段的数据值也会被输出为-1

======= V6.6 2017.8.18 ======
1、增加另一种导出json文件的形式,即为各行数据以主键列值为key,各字段信息为value,包含在一个json object

======= V6.5 2017.8.17 ======
1、增加导出csv对应Java类文件的功能
2、对导出csv对应C#类文件功能的运行参数进行调整

======= V6.4 2017.3.20 ======
1、支持某字段仅进行客户端或服务器导出

======= V6.4 2017.3.20 ======
1、支持某字段仅进行客户端或服务器导出

======= V6.3 2017.2.20 ======
1、增加导出csv对应C#类文件的功能

======= V6.2 2017.2.14 ======
1、增加新的运行参数-except用于配置本次要忽略导出的Excel文件名
2、配置额外导出csv、json文件时,可用$all声明对本次要导出为lua的表格均进行导出
3、XlsxToLuaGUI工具可以选择使用相对路径进行配置

======= V6.1 2016.11.11 ======
1、Excel表格的config配置表中增加exportDatabaseWriteNullForEmptyString选项,可设置string型字段中的空单元格导出至MySQL数据库时为NULL,而不是默认的空字符串
2、增加显示用OleDb方式读取各张Excel表所用时间的功能
3、读取Excel表时,自动忽略表格末尾所有主键列为空的行
4、float型字段在C#中改为实际用double型存储,float型仅表明是小数类型
5、忽略对Excel自动生成的以~$开头的临时文件的读取

======= V6.0 2016.10.8 ======

1、增加将Excel文件额外导出为csv文件的功能
2、增加将Excel文件额外导出为json文件的功能

======= V5.2 2016.9.19 ======

1、增加json这种新的数据类型
2、Excel表格配置中增加addKeyToLuaTable选项,默认为false,如果为true则表格在导出为lua table时,将主键列也作为table中的元素

======= V5.1 2016.9.8 ======

1、导出Excel文件到MySQL数据库创建表格时允许自定义额外参数,如设定Charset等
2、Excel文件中增加exportDatabaseTableComment配置,可将说明信息作为导出的MySQL数据库表格的Comment。MySQLToExcel工具同步增加直接将数据库表Comment导出为exportDatabaseTableComment配置的功能
3、增加非法值检查规则,与有效值检查相反

======= V5.0 2016.7.14 ======

1、ref检查规则允许声明不进行ref检查的排除值(现在在进行ref检查时,可以很方便地排除那些具有特殊含义的不需要进行检查的数值)
2、增加date、time两种时间相关的数据类型,并扩展检查函数对这两种新类型的支持,扩展MySQLToExcel工具对导出为date、time型的支持
3、增加long数据类型,比int型可以表示更大的数值,并扩展检查函数对这种新类型的支持
4、增加检测一行数据中某个字段的值是否大于或等于另一个字段的值的检查规则(支持与array、dict下属字段进行比较)
5、扩展ref检查规则,使其支持与array、dict下属字段进行比较
6、对MySQLToExcel工具生成的Excel文件进行美化,设置每列的最大宽度,对于在同一行中显示内容会超过最大列宽的列强制设为最大列宽,而使内容换行显示

======= V4.1 2016.6.6 ======

1、增加一个功能开关设置是否强制要求int、float型字段中所填数据不能为空,不再像以前一样强制不能为空,以适应更多项目的实际需要。选项包含以下2种:强制不能为空,可以为空且对应值赋值为nil。但即便是开启了允许空值的参数仍旧可以通过notEmpty进行非空检查。同时本工具为适应此改变,修改notEmpty等检查规则并更新XlsxToLuaGUI辅助工具使其支持此新增参数
2、bool型字段的值除了之前允许的0和1外,也允许直接填写英文false和true
3、优化从MySQL数据库导出为XlsxToLua工具支持的Excel表格形式以及通过XlsxToLua工具导出到数据库中,一些特殊类型字段以及空值的处理

======= V4.0 2016.5.30 ======

1、string类型声明时增加string(trim)声明方式,此列中所填写内容将被自动去掉首尾空白字符
2、增加MySQL数据表导出为本工具所要求的Excel文件格式的辅助工具,对于之前使用数据库作为数据表存储方式的项目,可以更快地转换到XlsxToLua工具所支持的Excel配表方式

 

======= V3.5 2016.5.9 =======

1、新增只导出指定的部分Excel表格的功能。考虑到很多情况下,数值策划一次仅修改一张表格的数据,这时通过本工具进行所有表格的检查、导出lua文件、导出到MySQL数据库便显得没有必要,故增加部分导出功能适应这种普遍情况
2、新增GUI操作本程序并可创建bat批处理脚本,这样不懂程序的人员可以通过图形化程序自己设置运行参数

======= V3.0 2016.5.7 =======

1、新增数据完整性检查规则,上一版本中增加了整表检查规则,使得表格中的不同行或不同字段间的逻辑关系可以通过自定义检查函数实现查错。但之前提到的HeroEquipment表中要进行检查是否填写了英雄在所有品阶下四件装备的穿戴信息。之前2.0版本中只能自己写函数检查。但类似的检查要求可能很普遍,所以我将这样的检查要求抽象成一个新的检查规则,使得只需进行规则配置,无需再写去相应的整表检查规则
2、新增将Excel表格数据导出到MySQL数据库的功能,这样数值策划维护Excel数据表,然后通过本工具不仅可以生成相应的lua table供前端程序使用,也能直接同步配置表格数据到服务器端的数据库中

 


======= V2.0 2016.4.29 =======
1.lang型字段增加一种新的数据声明方式:之前版本只能手工在每个单元格中填写具体的lang.txt中的key名。但考虑到key名一般是有规律的,往往是一个固定的前缀后面跟本行数据中某个字段的填写值(一般是id值)。本工具在此版本新增lang(itemDesc{id})声明方式,由程序自动组合成key值,不再需要在单元格中逐个手工填写。当然,不仅是前缀,也支持后缀,并且支持读取任意字段的值来拼成key名

2.新增整表检查功能,之前版本只能对字段按指定规则进行检查,而一张表格中往往存在字段之间、数据行之间的逻辑关系,这需要整表的检查规则来保证数据完整、逻辑关联正确等,详见样例表格HeroEquipment

3.新增按自定义索引方式导出lua文件的功能,之前版本只能是逐字段的导出,但程序在使用数据时往往需要自行组织数据的索引嵌套结构使得程序运行时能快速查找指定数据。本版本提供这样的功能,使得生成的lua文件中的table就是按一系列指定索引嵌套层次生成好的,直接读取使用即可,再也不用手工写代码实现

======= V1.0 2016.3.29 =======
首次正式发布

 

 

____________________________________________________________________________

运行截图



 相关资料
  • IIS 6.0 日志导入工具是一个服务器日志分析工具,因为我们对文本内容分析起来非常吃力, 通常第一步是先导入数据库,而手工导入到数据库又是一个费时费力的事情, IIS 6.0 日志导入工具专门针对导入这一步而开发; 其特点如下: 1.针对访问日志量大,单个文件几百MB,或几个GB的日志导入; 2.导入速度非常快,采用OLEDB ODBC底层驱动; 3.采用SQL Server 批量导入接口,快速

  • 目前大多数数字内容制作(Digital Content Creation, DCC)工具(3ds Max, Maya, Blender)都能导出 FBX 和 glTF 两种格式的模型文件,所以这些工具导出的内容都能在 Cocos Creator 3D 得到良好的展示。 导出FBX 因为 DCC 工具的坐标系和游戏引擎的坐标系不一定一致,所以在导出模型时需要进行一些变换才能在引擎中得到想要的结果。例

  • 更新时间:2019-07-08 15:20:11 目前设备开发工作台不支持本地工程文件夹导入,但是支持GIT导入,也支持下载workspace的工程文件夹到本地。 工程导入 Terminal->New Terminal,默认会进入~/workspace路径。用命令行方式在Terminal中执行代码 git clone https//文件名.git 可以把git文件导入workspace中。 例如上

  • 适用于MinDoc0.6一下版本 导出 pdf 格式文档使用的是 wkhtmltopdf 工具,工具下载地址为:https://wkhtmltopdf.org/downloads.html。 Windows 下配置 下载 Windows 版本,安装即可。 Linux 下配置 请下载和你服务器对应的版本,Linux版本依赖一下库: zlib fontconfig freetype X11 libs

  • 我创建了一个脚本来生成一些PDF,保存它们以驱动并在需要时发送电子邮件。 该脚本工作正常,除了一个问题:当我隐藏名为“TrafficAgentPDF”的工作表并运行脚本时,它会在驱动器中创建PDF,但不知何故它已损坏。不能被谷歌打开;在浏览器中打开它时,它是空白的。打开工作表,一切正常。 TrafficAgentPDF工作表在另一个工作表上执行vlookup,以显示图像而不是值。图像是小图标,仅使

  • 问题内容: 两个问题 1)将Java项目导出为JAR文件时,应用程序如何知道包中的哪个类首先运行?我的applicatino特别要求userInterface.java文件在CommonDenom.java文件之前运行。 2)运行Java文件时,出现错误消息“无法启动Java JAR文件“ commonDenom.jar”。请在控制台中查看可能的消息。” 我从哪里开始弄清楚这一点?我检查了控制台,

  • 我正在尝试使用kartik export,但它对我不起作用。在配置文件中,我添加了以下代码: 在Composer中,我添加了以下代码 我的视图代码是这样的: 我的控制器代码是: 点击导出菜单什么都没有发生。在教程中,我看到有选项导出到pdf,html,csv,json,text.such选项不应用程序在我的情况下。CSS不起作用还是怎么的?

  • 我试图从文件“paddle.JS”中导入一个JS类,以便在另一个文件“game.JS”中使用(没有使用JS库或框架,只是纯简单的VanillaJS),我似乎不明白为什么这个导入/导出不起作用。我看过太多的例子和教程,我完全按照他们说的做,但它就是不起作用。这可能是一个愚蠢的问题,但任何帮助都是感激的。 这是我正在学习的一个YT教程,我基本上是在Paddle.js的顶部添加“导出默认类Paddle”