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

news2024/11/23 23:01:36

一、介绍

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.coloradmin.cn/o/1714696.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ch2应用层--计算机网络期末复习

2.1应用层协议原理 网络应用程序位于应用层 开发网络应用程序: 写出能够在不同的端系统上通过网络彼此通信的程序 2.1.1网络应用程序体系结构分类: 客户机/服务器结构 服务器: 总是打开(always-on)具有固定的、众所周知的IP地址 主机群集常被用于创建强大的虚拟服务器 客…

【漏洞复现】大华智能物联综合管理平台 fastjson远程代码执行漏洞

0x01 产品简介 大华ICC智能物联综合管理平台对技术组件进行模块化和松耦合,将解决方案分层分级,提高面向智慧物联的数据接入与生态合作能力。 0x02 漏洞概述 由于大华智能物联综合管理平台使用了存在漏洞的Fastson组件,未经身份验让的攻击者可利用 /e…

探索Codigger文件管理器(File Explorer)的创新与实用性

在数字时代,文件资源管理器作为桌面环境中不可或缺的一部分,承担着管理文件和文件夹的重要职责。Codigger文件管理器(File Explorer)以其独特的创新和实用性,为用户提供了高效、便捷的文件管理体验。 Codigger文件管理…

AVL树的模拟实现

我们上期提到了二叉搜索树,只是简单的讲了一下原理,那么今天我们就讲一下AVL树。 目录 AVL树的概念AVL树的实现AVL树的架构insert插入引用pair对象引进parent指针仅插入数据调节平衡因子情况1:插入在父亲的右边,父亲的平衡因子后…

一种最大重叠离散小波包特征提取和支持向量机的ECG心电信号分类方法(MATLAB 2018)

目前小波分析算法常采用Mallat快速算法。该算法由与滤波器卷积、隔点采样和隔点插零等三个环节组成。由于实际使用的滤波器并不具有理想频域特性,使得在标准二进小波算法中存在着频率混叠和小波系数失真等缺点,在标准二进小波包算法中还存在频带错乱现象…

docker制作高版本jdk17镜像踩坑

1、创建目录并下载jdk上传到服务器中 从jdk官网下载jdk17镜像,提示:下载到本地用xftp上传到服务器(速度会快点) jdk官网:https://www.oracle.com/java/technologies/downloads/#graalvmjava21 创建目录,将…

MATLAB分类与判别模型算法:基于Fisher算法的分类程序【含Matlab源码 MX_002期】

算法思路介绍: 费舍尔线性判别分析(Fishers Linear Discriminant Analysis,简称 LDA),用于将两个类别的数据点进行二分类。以下是代码的整体思路: 生成数据: 使用 randn 函数生成随机数&#x…

P10-P11【重载,模板,泛化和特化】【分配器的实现】

三类模板(类模板)(函数模板)(成员函数模板) 特化 偏特化:模板参数个数/模板范围 定义的分配器 以上分配器的性能和内存管理有很大不足(在分配内存时,会产生很大的内存开…

UE5中绘制饼状图

饼状图 使用UE绘制前提完整的创建过程123456678 附录代码.h代码.c代码 使用UE绘制前提 EPIC Game使用的版本是Unreal Engine 5.0.3。 没有使用其他额外的插件,使用的是C和Ui共同绘制。 C编译器使用的是VS2019。 完整的创建过程 1 首先在UE中随意一种项目的白色。…

博物馆三维实景vr展示

VR技术应用到地产行业的优势不言而喻,随着购房政策的进一步放宽,购房刚需者借助VR商铺样板间展示系统看房,远比之前跑楼盘更便捷高效。那么VR商铺全景展示具体有哪些好处呢? VR技术与商铺的结合,为客户带来了前所未有的购房体验。…

python基础知识总结(第一节)

一、python简介: Python是一种解释型,面向对象的高级语言。 Pyhton的语法和动态类型,以及解释性语言的本质,使它一跃成为多数平台上写脚本和快速开发应用的编程语言。 python语言百度百科介绍 二、Python基础语法:…

国产操作系统上apt命令详解 _ 统信 _ 麒麟 _ 中科方德

原文链接:国产操作系统上apt命令详解 | 统信 | 麒麟 | 中科方德 Hello,大家好啊!今天给大家带来一篇在国产操作系统上使用apt命令的详解文章。apt(Advanced Package Tool)是Debian及其衍生发行版(如统信UOS…

宁盾身份域管与天翼云电脑完成兼容互认证

近日,宁盾身份域管与天翼云电脑完成兼容互认证!这是继中兴、深信服、升腾威讯云桌面/云电脑后,宁盾对接的第4个国产云桌面品牌。企业在引入国产云桌面时,同时会考虑微软AD目录的替代方案。宁盾国产化身份域管对接天翼云电脑从终端…

521源码-免费手游下载-【烽火中原H5】深度体验:横版网页国战手游及WIN学习手工端

【烽火中原H5】深度体验:横版网页国战手游及WIN学习手工端全面解析,烽火中原H5】横板网页国战手游WIN学习手工端语音视频教程营运后台CDK授权后台, 喜欢国战手游的玩家们,你们期待已久的【烽火中原H5】现已上线!这款游戏以横版网页的形式呈现…

[LitCTF 2023]yafu (中级) (素数分解)

题目: from Crypto.Util.number import * from secret import flagm bytes_to_long(flag) n 1 for i in range(15):n *getPrime(32) e 65537 c pow(m,e,n) print(fn {n}) print(fc {c})n 152412082177688498871800101395902107678314310182046454156816957…

电商推荐系统+电影推荐系统【虚拟机镜像分享】

电商推荐系统电影推荐系统【虚拟机镜像分享】 所有组件部署好的镜像下载(在下面),仅供参考学习。(百度网盘,阿里云盘…) 博主通过学习尚硅谷电商推荐电影推荐项目,将部署好的虚拟机打包成ovf文…

横截面分位数回归

一、分位数回归简介 分位数回归(英语:Quantile regression)是回归分析的方法之一。最早由Roger Koenker和Gilbert Bassett于1978年提出。一般地,传统的回归分析研究自变量与因变量的条件期望之间的关系,相应得到的回归…

[vue3后台管理二]首页和登录测试

[vue3后台管理二]首页和登录测试 1 修改main.js import ./assets/main.cssimport { createApp } from vue import App from ./App.vue import router from ./router createApp(App).use(router).mount(#app)2 路由创建 import {createRouter, createWebHistory} from vue-ro…

双指针+前缀和,蓝桥云课 近似gcd

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 0近似gcd - 蓝桥云课 (lanqiao.cn) 二、解题报告 1、思路分析 考虑近似gcd的子数组的特点:不为g的倍数的数字个数小于等于1 我们用前缀和pre[]来存储不为g的倍数的数字个数 那么枚举左端点l&a…

计算机网络学习笔记——运输层(b站)

目录 一、 运输层概述 二、运输层端口号、复用与分用的概念 三、UDP和TCP的对比 四、TCP的流量控制 五、TCP的拥塞控制 六、TCP超时重传时间的选择 七、TCP可靠传输的实现 八、TCP报文段的首部格式 一、 运输层概述 物理层、数据链路层、网络层实现了主机到主机的通信…