Skip to content

luopei4716/xlsTools

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

xlsTools

xlsTools 用于将策划配置的excel表格转换成代码配置文件,比如将“.xls”、“.xlsx”格式的文件转换lua配置文件(目前只支持转换成lua文件)。

使用示例

目录结构

|--protocol  
|  |--xls.proto  # protobuf 协议文件配置
|--scripts
|  |--xls2lua.py  # excel转lua的转换工具
|--tools
|  |--protoc.exe  # 转换protobuf协议的工具
|--xls   # excel目录,以下是两个示例文件
|  |--任务表.xlsx  
|  |--系统参数表.xlsx
|--config.conf # 转换配置文件
|--xlsTools.bat # windows下的程序入口
|--doc # 文档

使用的时候需要修改3个地方:config.conf、protocol/xls.proto、xls/xxx.xlsx。具体使用步骤如下:

  1. 在protocol/xls.proto中添加新的数据结构定义:
syntax = "proto2";

message AwardItem{
    required int32 id = 1;
    required int32 num = 2;
    optional int32 expire = 3;
}

message TaskItem{
    required int32 id = 1;
    required int32 type = 2;
    required string name = 3;
    required uint32 start_time = 4;
    required uint32 end_time = 5;
    repeated int32  conds = 6;
    repeated AwardItem awards = 7;
}

message TaskList{
    repeated TaskItem list = 1; 
}
  1. 在xls目录下新增excel文件;
    示例配置
    如图,表格的第一行是标题,可以随便自定义。第二个行是结构定义,必须和protocol/xls.proto中定义的结构体对应。其规则如下:
    a. 带“”的表示这一列为主键,其对应的结构里不带“”,一个表格里最多只能有一个主键;
    b. 普通类型(即非repeated且类型为非结构类型)保持excel和结构体名对应即可,如“任务表.xlsx”里的id,type,name,start_time,end_time这些字段;
    c. repeated类型的组合方式是:“结构体名_” + 索引。如“任务表.xlsx”里的cond_1, cond_2, cond_3;
    d. 结构类型的,比如TaskItem.awards。其对应的应该是“任务表.xlsx”里的“awards_” + 索引 + “id”, “awards” + 索引 + “num”, “awards” + 索引 + “_expire”,这里的索引是因为TaskItem.awards是repeated类型的。如果TaskItem.awards是非repeated类型的,则其对应便是“awards_id”, “awards_num”, “awards_expire”。
  2. 在config.conf目录下新增excel表格到具体结构的映射关系。如下:
任务表.xlsx = TaskList
系统参数.xlsx = SystemParams
  1. 运行xlsTools.bat程序进行转换。转换结果在output/lua下。如:
_G.tables = _G.tables or {}
_G.tables.TaskList = {
    [1000] = {type=1,name="杀死10个野怪",start_time=1577808000,end_time=1609430400,conds={10,0,0},awards={id=1000,num=100,expire=0}},
    [1001] = {type=2,name="累计存活50分钟",start_time=1575129600,end_time=1577808000,conds={50,0,0},awards={id=1000,num=100,expire=0}}
}

注意事项

  1. 目前支持将excel配置文件转换为lua文件,其它语言的支持待开发;
  2. 转换的时候只会转换每个excel表格的第一个sheet,所以每个excel里最多只能有1个sheet;

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 98.8%
  • Batchfile 1.2%