GithubHelp home page GithubHelp logo

brinkqiang2cpp / packtool Goto Github PK

View Code? Open in Web Editor NEW

This project forked from love19862003/packtool

0.0 1.0 0.0 54.14 MB

read excel to protobuf and pack data

CMake 0.23% C++ 90.86% Lua 6.78% C 2.04% Batchfile 0.03% C# 0.06%

packtool's Introduction

packtool

read excel to protobuf and pack data
导出excel文件为proto,并且打包出对应的数据
支持自定义结构和类型
支持自定义枚举
支持自动生成c++管理类和相关接口
支持自动生成C#管理类和接口
支持数据检查等
支持新老版本兼容
支持数据的对比,更新,删除并产生log文件

具体使用方法在demo里 bin目录下有运行时候的setting.xlsx文件来配置整个数据包的产出
第一个sheet页为所有自定义枚举的配置
1.每一行的第一个是定义枚举的所在的excel文件 第二列是所在文件的sheet的名字
枚举定义
表所属枚举定义 表名.枚举名
role.JobType 枚举名
enum 类型
职业 注释
COMMON_0=0
NOVICE_1=1
SWORDMAN_2=2
BUSINESSMAN_3=3
ARCHER_4=4
MASTER_5=5
SERVE_6=6
ROBBERS_7=7



全局枚举定义 枚举名
CampType 枚举名
enum 类型
阵营 注释
Camp_Light=1
Camp_Dark=2

枚举值定义 枚举值名=枚举数值


第二个sheet页为所有的table的配置
1.每一行的第一个是定义表的所在的excel文件 第二列是所在文件的sheet的名字 第三列是联合索引,支持多个列来查询一条记录。
表文件 sheet名兼表名字 多列联合索引
monster.xlsx monster job,level,sub

表的第一列必须是basic_type并且是唯一的来支持索引,
表结构定义
id group_float group_string job
string group group role.jobtype
1 [[1.2,2.0]] [[1.2,2.0],[2]] common_0

目前基础类型支持 basic_type
none --注释
string --字符串
float --浮点数
int --整数
bool --bool
enum --枚举定义类型
self_enum --自定义的枚举
self_type --自定义数据结构
coordinate --坐标类型
int5 --int5 value

self_enum是通过enum定义出来的
self_type 是自定义数据结构, 可以参考里面目前coordinate,int5的方式自定义类型,需要实现自定义的解析和定义函数即可


维数类型
array<basic_type> --数组
group<basic_type> --二维数组

例如
array array<role.jobtype> array
group group<role.jobtype> group


第三个sheet页为导出的proto和相关管理类的配置

Pro 包名。Package
Game 打包的数据结构名字( 用于生产管理类的数据。)
Config 打包的类的后缀名
AllConfigs 输出的管理类和文件名字
./export/ 打包输出目录
./ excel目录
ConfigType 自定义类型定义
ConfigTypeGroup group类型定义
layout.layout 表结构布局文件


打包输出目录会产生几个子文件夹
cpps c++管理类
csharp c#管理类,另外附带测试工程
data 二进制数据包
info 版本迭代信息,数据更新删除等等产生的log
lua 输出的lua数据
lua_out pbc接口管理
pbs proto文件的二进制
proto proto文件
sql mysql文件

第四个sheet页为数据检测的配置
1.每一行的第一个是定义检测的所在的excel文件 第二列是所在文件的sheet的名字
检测语法
表.列名 = [[ 条件, 条件,...] ,[ 条件, 条件,...] , ...]
条件可以为
表.列名 -- 在表里该列里查找数值
数值 -- 可以为这个数值
? -- 任意
枚举 -- 在定义枚举值中
枚举.枚举值 -- 必须为枚举值


具体检测方法可以查看check
自定义类型的检测方法,需要自己编写。







packtool's People

Contributors

love19862003 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.