【开源项目】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. 更多语言支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/661014.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【因果推断python】2_因果关系初步2

目录 偏差 关键思想 偏差 偏差是使关联不同于因果关系的原因。幸运的是,我们的直觉很容易理解。让我们在课堂示例中回顾一下我们的平板电脑。当面对声称为孩子提供平板电脑的学校会获得更高考试成绩的说法时,我们可以反驳说,即使没有平板电…

力扣:104. 二叉树的最大深度

104. 二叉树的最大深度 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:3示例 2: 输入&#xff1a…

手机投屏技巧:手机怎么投屏到电脑显示屏上?精选6招解决!

手机怎么投屏到电脑显示屏上?出于一些不同的原因,大多数人都希望能将手机投屏到电脑上。其中一个常见的原因是,大家经常会希望在笔记本电脑上共享图片,而无需上传或者登录微信进行文件传输。以及希望不依靠投影仪,就能…

Jetpack架构组件_5.BindingAdapter

1.BindingAdapter介绍 Binding adapters 可以作为一个设置某个值的框架来使用,databinding 库可以允许指定具体的方法来进行相关值的设置,在该方法中可以做一些处理逻辑,Binding adapters 会最终给你想要的结果。Android Databinding框架中已…

微信网页版登录插件v1.1.1

说到如今的微信客户端,大家肯定会有很多提不完的意见或者建议。比如这几年体积越来越大,如果使用频率比较高,那占用空间就更离谱了。系统迷见过很多人电脑C盘空间爆满,都是由于微信PC版造成的。 而且,它还加了很多乱七…

甩掉接口文档烦恼!Spring Boot 集成 Knife4j,轻松玩转 API 可视化

一、引言:跟接口文档说拜拜 👋 作为一名 Java 开发者,你是否还在为编写繁琐的 API 文档而头疼?传统的手动编写方式不仅耗时费力,而且容易出错,难以维护。今天,我们就来介绍一款神器 Knife4j&am…

【5.基础知识和程序编译及调试】

一、GCC概述:是GUN推出的多平台编译器,可将C/C源程序编译成可执行文件。编译流程分为以下四个步骤: 1、预处理 2、编译 3、汇编 4、链接 注:编译器根据程序的扩展名来分辨编写源程序所用的语言。根据不同的后缀名对他们进行相…

AIOps在线评测基准首阶段建设完成,面向社区发布真实运维数据!

本文根据必示科技算法研究员、产品总监聂晓辉博士在2024 CCF国际AIOps挑战赛线下宣讲会上的演讲整理成文。 2024年1月份OpenAIOps社区成立,随着越来越多的社区成员加入,各项工作在有条不紊的推进中。在线评测基准系统(AIOps Live Benchmark&a…

在IDEA中配置servlet(maven配置完成的基础下)

在IDEA中配置servlet&#xff08;maven配置完成的基础下&#xff09; 1.先新建一个项目 2.选择尾巴是webapp的&#xff0c;名称自定义 3.点击高级设置&#xff0c;修改组id 点击创建&#xff0c;等待jar包下载完成。在pom.xml中配置以下 <dependency><groupId>ja…

方法的重写--5.29

当子类对父类的方法不满意时&#xff0c;可以进行重写&#xff0c;但是方法名字要与父类一样。 举例&#xff0c;我用people来举例&#xff0c;我是打工人&#xff0c;然后再创一个student类&#xff0c;重写方法我不是打工人&#xff0c;我是读书人。代码如下&#xff0c;发现…

基于51单片机的室内空气质量检测-仿真设计

本设计是基于单片机的空气质量检测设计&#xff0c;主要实现以下功能&#xff1a; 可实现通过SGP30测量二氧化碳及甲醛浓度&#xff0c;当超过设置的最大值时&#xff0c;进行报警及通风和净化空气处理 可实现通过MQ-4测量甲烷浓度&#xff0c;当超过设置的最大值时&#xff0…

网工内推 | 国企信息安全工程师,CISP认证优先

01 浙江省公众信息产业有限公司 &#x1f537;招聘岗位&#xff1a;安全运营工程师 &#x1f537;职责描述&#xff1a; 1. 负责公司内部安全运营平台及其子系统的安全事件管理、事件发现分析、应急响应和系统维护等&#xff1b; 2. 负责风险和漏洞管理&#xff0c;包括漏洞预…

Marin说PCB之如何在主板上补偿链路中的走线的等长误差?

一场雨把我困在这里&#xff0c;你冷漠地看我没有穿雨衣淋成落汤鸡。今天刚刚出门时候看天气预报没有雨&#xff0c;于是我就没有带雨衣骑电动车去公司了&#xff0c;谁知道回来的路上被淋成狗了。天气预报就像是女人的脾气那样&#xff0c;不能完全相信的。 好了&#xff0c;我…

Android 13 VSYNC重学习

Android 13 VSYNC重学习 引言 学无止境&#xff0c;一个字干就完事&#xff01; 源码参考基于Android 13 aosp&#xff01; 一. Android VSync模块开胃菜 在开始正式的分析之前&#xff0c;我们先简单对Android的Vsync模块简单介绍下,如下图所示&#xff0c;其中: HW_VSync是…

基础—SQL—DQL(数据查询语言)基础查询

一、引言 1、介绍&#xff1a; 分类全称描述DQL英文全称&#xff1a;Data Query Language(数据查询语言)主要是学习对数据库表中的记录进行查询的语句 2、讲解 日常的开发中或者对于一个正常的业务系统中&#xff0c;对于查询的操作次数是远远多于数据的增删改的频次。例如…

图片转excel表格工具的工具,分享3个专业的识别软件!

在数字化时代&#xff0c;我们时常面临将图片中的表格数据转换为可编辑的Excel表格的需求。无论是工作中的数据整理&#xff0c;还是学习中的资料汇总&#xff0c;这一需求都显得尤为迫切。幸运的是&#xff0c;市面上已经涌现出众多优秀的图片转Excel表格工具&#xff0c;它们…

前端渲染页面的原理

之前一直不愿意写一篇关于原理的&#xff0c;因为说起来实在是太繁杂&#xff0c;要写得细&#xff0c;码字梳理&#xff0c;计算下来起码都要差不多三周。以前一直躲避这个事情&#xff0c;现在反正有时间&#xff0c;为了不荒废自己&#xff0c;那就从头捋一遍。也方便自己后…

MyBatis系统学习 - 使用Mybatis完成查询单条,多条数据,模糊查询,动态设置表名,获取自增主键

上篇博客我们围绕Mybatis链接数据库进行了相关概述&#xff0c;并对Mybatis的配置文件进行详细的描述&#xff0c;本篇博客也是建立在上篇博客之上进行的&#xff0c;在上面博客搭建的框架基础上&#xff0c;我们对MyBatis实现简单的增删改查操作进行重点概述&#xff0c;在MyB…

基于 FastAI 文本迁移学习的情感分类(93%+Accuracy)

前言 系列专栏:【深度学习&#xff1a;算法项目实战】✨︎ 涉及医疗健康、财经金融、商业零售、食品饮料、运动健身、交通运输、环境科学、社交媒体以及文本和图像处理等诸多领域&#xff0c;讨论了各种复杂的深度神经网络思想&#xff0c;如卷积神经网络、循环神经网络、生成对…

基于双向长短时记忆网络的ECG心电信号识别(包括原始时域信号与时频域特征提取,MATLAB R2021B)

循环神经网络RNN&#xff0c;是一种链式结构&#xff0c;能够对连续输入的序列同时处理&#xff0c;且有不错的效果。RNN具有记忆功能且能够随时接受并处理输入数据&#xff0c;这得益于其特殊的连接方式&#xff0c;即神经元之间以一定的方向互相连接构成环&#xff0c;内部时…