当前位置: 首页 > news >正文

【开源项目】Excel数据表自动生成工具v1.0版

一、介绍

Excel数据表自动生成工具是Go语言编写的一款小型工具软件,用于将特定的Excel表格内容导出为多种编程语言的代码或可以直接读取的数据内容。
开源Github地址:https://github.com/SkyCreator/goproj

二、版本v1.0功能概览

1.编程语言支持

目前只支持Go语言和Lua语言。

2.表格内容支持

目前只支持一个Excel文件对应一张数据表(不支持同一个Excel文件多个标签分表)

三、目录结构

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传{.alignnone}

如上图所示,目录结构分为DataTable文件夹、internal文件夹、Out文件夹和DataTableGen.exe可执行程序。

1.DataTable文件夹

原始Excel表格放入这里。

2.Internal文件夹

生成模板文件,不需要关心。

3.Out文件夹

生成相应编程语言文件。

4.DataTableGen.exe可执行程序

直接运行即可生成lua数据表。

四、Excel表格式说明

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传{.alignnone}

如图所示,DataTable文件夹中包含原始Excel文件。此文档以User.xlsx和UserCommodity.xlsx为测试用例进行说明。

1.原始Excel文件

原始Excel文件的名称代表数据表的名称,以大驼峰命名法(CamelCase)命名。大驼峰命名法要求英文词汇以首字母大写,后面字母小写的方式命名。如UserCommodity、CommonItem等。

2.表结构

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传{.alignnone}

如上图所示,这是User.xlsx的表结构。为了适应多种编程语言,表结构必须严格按照固定格式制作。
表结构分为橙色矩形区域和蓝色矩形区域

橙色矩形区域

橙色矩形区域代表表头信息,分为三行。
第1行:数据类型行。
目前支持INT(整数)、STRING(字符串)、BOOL(布尔值)和FLOAT(浮点数)。
INT,填写整数,也就是不包含小数点的数字。
STRING,填写字符串,任何语言的字符串都可以。
BOOL,填写布尔值,填写0、1、true和false(大小写不敏感)都可以。
FLOAT,填写浮点数,可以填写具有小数点的实数。不建议使用。因为精度问题,一般浮点数都用10的整数倍(作为基数)来表示,程序中再根据数据除以基数得出结果。

第2行:备注行。
解释当前列的作用。程序不读取。

第3行:数据名称行。
生成的代码中具有明确标识的名称,同样使用大驼峰命名法。

蓝色矩形区域

策划备注列,作为每一行的特殊标注。程序不读取。

五、生成代码

Lua

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传{.alignnone}
双击DataTableGen.exe,Out/Lua下会生成对应的lua数据表脚本文件。User.xlsx表对应User.lua文件,UserCommodity.xlsx表对应UserCommodity.lua文件。

Go

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传{.alignnone}
Cmd命令行或Shell终端中执行./DataTableGen.exe go,Out/Go下会生成对应的go数据表相关代码文件。User.xlsx表对应User.go文件,UserCommodity.xlsx表对应UserCommodity.go文件,DataTableFactory.go是工厂代码文件,不需要关心。

六、使用数据表

Lua

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传{.alignnone}
如上图所示,假如需要读取User.xlsx表格的内容,只需要使用前缀DR+表名User,引用以表格User.xlsx中Id列作为key,即可获得这一行数据。在这张表下,可以通过user.Id,user.Name,user.Height,user.Sex,user.Age取得相应的行数据。

Go

由于语言特性不同,Go的使用也不同于Lua。
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传{.alignnone}
上图所示,在你的项目中,需要导入GoData包。
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传{.alignnone}
GoData包中除了工具生成的几个Go代码文件外,还包含DataTableManager.go(github地址)。
具体用法如下:
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传{.alignnone}

1.初始化数据表管理器

dtManager := GoData.MustInit()

2. 获取表格结构体指针

dt := dtManager.GetDTUserCommodityTable()

3. Get()方法

根据表Id获取表数据
ucData := dt.Get(91)
根据表数据取得特定数据
ucData.Name

4. GetAll()方法

用于遍历数据表,返回行数据数组
ucDataAll := dt.GetAll()

5. Rows()方法

用于统计数据表行数
dt.Rows()

七、未来规划

1.支持同一张Excel表中的不同标签页。计划将多于一个标签页的Excel表作为一个独立的文件夹,每个标签页名对应数据表名。
2. 支持某几列为同一组的类型。
3. 更多语言支持。
http://www.lryc.cn/news/358074.html

相关文章:

  • Docker-一文详解容器通信的基础网络模式及衍生的自定义网络模式
  • Convolutional Occupancy Networks【ECCV】
  • Android Studio 问题集锦
  • J.搬砖【蓝桥杯】/01背包+贪心
  • 拥塞控制的微观行为与力学解释
  • 每日一读: 硬件网卡tx支持哪些功能特性offload(ixgbe驱动为例)
  • MyBatis的坑(动态SQL会把0和空串比较相等为true)
  • Springboot事务控制中A方法调用B方法@Transactional生效与不生效情况实战总结
  • python -【三】循环语句
  • 类的内存对齐位段位图布隆过滤器哈希切割一致性哈希
  • 于ThinkPHP开发的赛事报名小程序
  • 前端学习--React部分
  • 24V_2A_1.2MHZ|PCD0303升压恒频LCD背光源专用电路超小体积封装
  • python生成词云图
  • 【使用ChatGPT构建应用程序】应用程序开发概述:1. 管理秘钥、2. 数据安全、3. 与应用程序解耦、4. 注意提示语的注入攻击
  • 【JavaScript脚本宇宙】不可或缺的Web开发工具:图表和可视化
  • 自然语言处理(NLP)中的迁移学习
  • PLC集成BL121PO网关优化智能电网的远程管理PLC转OPC UA协议
  • 爬虫案例(读书网)
  • Linux系统编程(五)多线程创建与退出
  • 计算机毕业设计 | SpringBoot个人博客管理系统(附源码)
  • 字母的大小写转换
  • JTW结构
  • debian11安装留档@VirtualBox
  • SpringBoot——整合Thymeleaf模板
  • 电商推荐系统+电影推荐系统【虚拟机镜像分享】
  • (函数)判断素数(C语言)
  • git 学习随笔
  • 【因果推断python】1_因果关系初步1
  • (函数)颠倒字符串顺序(C语言)