golang 实现的 Excel 解析器。
- path,xlsx 配置文件目录
- output,生成文件的输出目录,默认为
.
- server,指定 server 端生成格式,例如:--server=json
- client, 指定 client 端生成约束,例如:--client=lua
- indent, 生成含有 json 类型的配置时,是否格式化(美化) json(默认关闭)
- force, 强制重新导出所有配置(默认关闭)
- default, 若配置的基础数据类型字段(
int
,bool
, string
,float
)未配置时,使用默认值填充字段(例如:0
, false
, 0.0
, 0.0
)(默认开启)
- compact, 生成的配置成行压缩,减少文件大小(默认关闭)
- i18n,国际化翻译配置路径
- lang,国际化翻译目标语言(en=英文;jp=日文;kr=韩文等)
ps:真正的输出路径格式为: output/[server|client]/文件格式
,例如:./server/json 表示服务端json格式的输出目录。
解析器只识别名为 data
或者 vdata
的工作表。
- 横向表:Excel Sheet 命名为
data
,一般常用的配置方式,支持多行数据配置。
- 纵向表:Excel Sheet 命名为
vdata
,一般用来配置全局字段表,只支持一行数据配置。
执行:
excelparser.exe --path=./xlsx --server=lua --client=json --indent --force
Progress:[██████████████████████████████████████████████████][100%]
------------------------------+----------------------------------------------------------------------
FileName | Result
------------------------------+----------------------------------------------------------------------
system | 42 ms
------------------------------+----------------------------------------------------------------------
task | 43 ms
------------------------------+----------------------------------------------------------------------
server 生成lua配置并导出到 ./server/lua 目录中;client 生成lua配置并导出到 ./client/lua 目录中。
excelparser --path=./xlsx --server=lua --client=lua
server 生成lua配置并导出到 ./server/lua 目录中;client 生成json配置并导出到 ./cient/json 目录中,并格式化 json。
excelparser --path=./xlsx --server=lua --client=json --indent
server 生成json配置到 ./out/server/json 目录中,并使用 ./i18n 目录中的 en.xlsx 翻译文件来替换配置中的 i18n 类型配置值。
excelparser.exe --force=true --path=./xlsx --output=./out --server=json --i18n=./locales --lang=en_US
使用json类型时,可以指定在<>
内指定json真正导出的数据结构,支持定长数组、变长数组、map(之前嵌套),但不支持any和struct(不好描述结构体原型)。另外,需要注意的是,变长数组只适用于json中,表头描述的类型只支持定长数组。
id |
jsonval |
int |
json<[]int> |
|
s |
配置唯一id |
json字符串 |
1001 |
[1,2,3] |
id |
list1 |
|
|
|
int |
[3]any |
i18n |
int |
int |
|
s |
|
|
|
配置唯一id |
奖励道具 |
道具名 |
道具id |
道具数量 |
1001 |
|
这是一个道具 |
2 |
3 |
id |
list2 |
|
|
|
|
|
|
|
|
|
|
|
|
int |
[3][3]int |
[3]int |
int |
int |
int |
[3]int |
int |
int |
int |
[3]int |
int |
int |
int |
|
s |
|
|
|
|
|
|
|
|
|
|
|
|
配置唯一id |
奖励列表 |
|
|
|
|
|
|
|
|
|
|
|
|
1001 |
|
|
1 |
2 |
3 |
|
11 |
22 |
33 |
|
11 |
22 |
33 |
id |
map1 |
|
|
|
|
int |
map[int]string |
int |
string |
int |
string |
|
s |
|
|
|
|
配置唯一id |
简单map |
|
|
|
|
1001 |
|
1 |
aaa |
2 |
bbb |
id |
map2 |
|
|
|
|
|
|
|
|
int |
map[int]map[int]string |
int |
map[int]string |
int |
string |
int |
map[int]string |
int |
string |
|
s |
|
|
|
|
|
|
|
|
配置唯一id |
嵌套map |
|
子map1 |
|
|
|
子map2 |
|
|
1001 |
|
1 |
|
111 |
bbb |
2 |
|
111 |
bbb |
id |
map3 |
|
|
|
|
|
|
|
|
|
|
int |
map[int][3]int |
int |
[3]int |
int |
int |
int |
int |
[3]int |
int |
int |
int |
|
s |
|
|
|
|
|
|
|
|
|
|
配置唯一id |
数组map |
|
数组1 |
|
|
|
|
数组2 |
|
|
|
1001 |
|
101 |
|
11 |
22 |
33 |
102 |
|
11 |
22 |
33 |
id |
s1 |
s1.a |
s1.b |
s1.c |
|
|
|
s1.d |
|
|
|
|
|
|
|
|
s1.e |
int |
struct |
int |
string |
[3]int |
int |
int |
int |
[2][3]int |
[3]int |
int |
int |
int |
[3]int |
int |
int |
int |
int |
|
s |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
配置唯一id |
结构体 |
字段a |
字段b |
字段c |
|
|
|
字段d |
|
|
|
|
|
|
|
|
字段e |
1001 |
|
111 |
2222 |
|
1 |
2 |
3 |
|
|
122 |
222 |
333 |
|
122 |
222 |
333 |
1001 |