# 使用须知
##1. 使用范围
-本工具提供新格式(使用文字替代颜色)的导表功能,转表(将旧格式转换为新格式)功能,老格式转表功能在*`oldExcel`*分支。
-支持导出为lua/erl格式(需要在config.json文件中配置)。
-支持xls, xlsx文档的导表及转表功能(注意,请不要使用mac的另存为功能将xls文件保存为xlsx,该操作将导致颜色信息丢失)
##2. 使用方法
*\*如果第一次使用,请先安装python,并按照步骤3方式安装依赖\**
* 命令行版本:在mac或windows下tranExcel目录下执行一下命令:
```shell
python tran.py srcDir/ destDir/
```
将提取srcDir目录下的所有xls/xlsx文件,导出为lua和erl代码到destDir目录下。
* ui版本:在mac或者windows下打开 wxtran.py程序
## 3.安装python及依赖
如果导表机器没有安装`python2.7`,那么首先需要根据(https://www.python.org/downloads/release/python-2715/)安装`python2.7`,如果在`windows`使用,还需要配置环境变量,在`path`的最后新增`;C:\Python27\`
第一次使用前,`windows`下需要执行`install.bat`,`linux`/`mac`下需要执行`bash install.sh`,以后的运行不在需要执行这2步操作。
##4. 配置导出黑白名单
在`srcDir`目录下放置一个名为`config.json`的文件将使导表工具根据该配置进行导出过滤,以下为例:
```json
{
"erlang": true,
"lua": false,
"go": true,
"ignore": [
"strings/",
"!strings/cn/"
],
"erl_suffix": "erl",
"lua_suffix": "lua.bytes",
"lua_force_lowercase": true,
"forbid_xls": true,
"go_package": "config",
"lua_compact": false
}
```
其中`"erlang": true`代表导出erl 文件,`"lua": false`代表不导出lua文件,`"go: true`代表导出go文件
`ignore`为忽略项,使用目录或者文件名来忽略目录或文件的导出,使用`!`加目录及文件名来使得之前被忽略的文件重新导出。
上面示例的`config.json`文件代表 仅导出erl文件,并且不要导出`strings/`目录下的文件除了在`strings/cn`内的文件。
`erl_suffix`和`lua_suffix`用于指定导出文件的文件名后缀
`go_package`用于指定导出go代码的根目录的package名字
`lua_compact`用于控制是否输出紧凑格式的lua代码
## 5.转表
该软件提供将颜色格式的excel表转换为描述性字符的excel表,使用方式为:
```shell
python tran.py srcDir/ destDir/ version
```
注意:xls文件转表将导致excel文件格式丢失,仅保留文字信息。
## 6.新导表格式
excel文件中,第一行为注释信息例如:
```
//技能id | 技能类型 | 技能名字 | ...
```
注意:注释行必须第一个必须以 `//` 开头
第二行为导出信息,即原来的颜色格式,例如:
```
required#both | required#client | optional#back | ...
```
其中,`required`和`optional`是一组可选项,分别代表该列内容必须存在 和 可以为空;
`both`,`client`,`server`,`none`是一组可选项,分别代表导出为2种语言,仅导出为客户端语言,仅导出为后端语言,不需要导出该列;
使用时使用`#`分割多个选项,如果该列格式信息为空,那么使用默认值`optional#both`。
第三行为列名字,例如:
```
*id | kind | form | trigger | ...
```
注意: 导出的lua, erl 代码都使用hashmap来存储配置文件,而key通过列名字是否带`*`提现。带`*`的的列为key列。
第四行为列类型,例如:
```
int | int | [int] | [effect] | ...
```
## 更新日志
v1.0.4
* 增加更加详细的报错信息
v1.0.3
* lua格式支持导出json格式,**json格式仅支持lua**,json导出erlang或golang会报错
v1.0.2
* lua导出格式变更为多返回值`data, count, other_keys`,go导出格式变更。
v1.0.1
* 增加导出go代码的功能
v1.0.0
* 增加lua代码多键支持的功能