Skip to content

Commit

Permalink
更新文档
Browse files Browse the repository at this point in the history
  • Loading branch information
davyxu committed Sep 13, 2016
1 parent fb99161 commit ac2caf5
Show file tree
Hide file tree
Showing 17 changed files with 549 additions and 85 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@
/tabtoy.exe
exportorv1/test/test.pb
exportorv1/test/Actor_std.json
exportorv2/sample/~$Actor.xlsx
exportorv2/sample/~*.xlsx
exportorv2/sample/csharp/csharp/bin/
exportorv2/sample/csharp/csharp/obj/
124 changes: 111 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,123 @@
# tabtoy

游戏客户端,服务器的策划表格数据导出

# 一些问题的处理
# 优点

* 所有文件导出为1个文件
* 只需3步, 即可导出数据, 无任何其他工具依赖

* 多文件导出时, 为了防止类型重复定义问题, 需要在全局准备一个空表导入类型信息, 其他表只是引用
* 无需依赖vbs,vba,dll, 跨平台

行结构名称优先度从低到高来源: Sheet名->(当有多个DataSheet时)FileMeta里的TableName, 不以Sheet名来命名, 因为考虑到多Sheet时的歧义问题
* 支持文件格式最多的导出器(json, lua, C#+二进制, pbt+proto)

Combine系统
结构体名 从命令行参数来
每个电子表格表名, 为Combine结构体的字段名, 类型为电子表格名+Define
二进制文件名 二进制路径+结构体名.bin
C#文件名 C#路径+结构体名.cs
* 一次设置, 自动生成索引代码, 支持lua, C#

就是字段迭代填写. 实际上用起来很少, 现在只支持1层, 其他特性都保留并且全部加强
* 单元格字段列随意调整, 自动检查错误, 精确报错位置

v2版是尽量输出时, 去proto化, C#这个不需要protobuf也可以读取
* 充分利用CPU多核进行导出, 是已知的现有导出器中最快的

* 持续更新, 不断添加新功能, 提高工作效率

所有格式都是合并成1个文件输出, 方便一点, 编译速度也快一些
# 商用项目

现在索引在lua和C#可以直接建立, 无需手动介入, go的很快就加出来了
* Fairy in Wonderland
https://itunes.apple.com/us/app/fairy-in-wonderland-parkour/id1128656892?l=zh&ls=1&mt=8

* Mad Magic
https://itunes.apple.com/app/id1146098397


# 迭代历程

* 2016年8月: 第六代导出器,tabtoy v2 调整为以电子表格为中心的方式, 支持v1 90%常用功能

增加: 所有导出文件均为1个文件, 提高加载读取速度

增加: 二进制合并导出(第五代导出器需要使用2个工具才能完成)

增加: C#源码导出及索引创建,无需protobuf支持

增加: proto格式导出, 支持v2,v3格式
重构代码, 导出速度更快

* 2016年3月: 第五代导出器,tabtoy v1 在四代基础上重构,开源,支持并发导出

* 2015年: 第四代导出器,基于Golang导出器,增加ID重复检查,数组格的多重写法, 支持a.b.c栏位导出, 导出速度大大提高

* 2013年: 第三代导出器,在二代基础上做到内容格式与导出器独立,但依然依赖csv前置导出,增加逗号分隔格子内容,导出速度慢

* 2012年: 第二代导出器,基于C++和Protobuf的导出器,内容格式与导出器混合编写,需要vbs导出csv,速度慢

* 2011年: 第一代导出器,基于VBA的表格内建导出器,速度慢,复用困难,容易错,不安全


# 应用情况

前面多个版本都在本人项目中使用, 2个非本人项目商用

53个Excel源文件, 格式xlsm, 大小3.8M

导出速度(硬件环境: i7-4790 8核+SSD)

* 9.4s 第四代导出器

* 4.9s 第五代导出器单线程

* 2.4s 第五代导出器

# 第六代导出器文档(tabtoy v2)

## 导出步骤

### 准备电子表格文件

格式请参考:

[Sample.xlsx]: (https://github.com/davyxu/tabtoy/blob/master/exportorv2/sample/Sample.xlsx)


### 准备tabtoy二进制

* 已经编译好的二进制:

[Tabtoy Release]: (https://github.com/davyxu/tabtoy/releases)

* 手动编译

go get github.com/davyxu/tabtoy

### 编写导出命令行

范例:

```bat

tabtoy --mode=exportorv2 --json_out=.\config.json Table.xlsx

```
## 例子

[范例]: (https://github.com/davyxu/tabtoy/blob/master/exportorv2/sample)

## 详细文档

[Manual_V2.md]: (https://github.com/davyxu/tabtoy/blob/master/doc/Manual_V2.md)


推荐!

# 第五代导出器文档(tabtoy v1)
[Manual_V1.md]: (https://github.com/davyxu/tabtoy/blob/master/doc/Manual_V1.md)

已停止开发

# 备注

感觉不错请star, 谢谢!

博客: http://www.cppblog.com/sunicdavy

知乎: http://www.zhihu.com/people/xu-bo-62-87

邮箱: [email protected]
53 changes: 2 additions & 51 deletions README_v1.md → doc/Manual_V1.md
Original file line number Diff line number Diff line change
@@ -1,57 +1,8 @@
# tabtoy

游戏客户端,服务器的策划表格数据导出

将电子表格文件根据制定proto及字段转化规则,导出为Protobuf文本格式(*.pbt), json或lua格式

使用者通过读取Protobuf文本格式, json, lua等格式直接获取到所有的格式化数据

# 优点

本转化器无需依赖vbs,vba.跨平台

直接输出基于Protobuf文本的格式化数据, 直接读取

支持lua, json格式输出, 无需解析,转换,直接读取

字段位置随意调整, 自动检查错误, 精确报错位置

充分利用CPU多核进行导出, 是已知的现有导出器中最快的

持续更新, 不断添加新功能, 提高工作效率

# 商用项目

* Fairy in Wonderland
https://itunes.apple.com/us/app/fairy-in-wonderland-parkour/id1128656892?l=zh&ls=1&mt=8

* Mad Magic
https://itunes.apple.com/app/id1146098397


如果你的项目在使用tabtoy, 请联系我添加链接, 互相宣传

# 应用情况

前面多个版本都在本人项目中使用

53个Excel源文件, 格式xlsm, 大小3.8M

导出速度(硬件环境: i7-4790 8核+SSD)

* 9.4s 第四代导出器

* 4.9s 第五代导出器单线程

* 2.4s 第五代导出器


# 编译

go get github.com/davyxu/tabtoy

go install github.com/davyxu/tabtoy
第五代导出器文档. 描述tabtoy v1版各种功能

v1版已停止开发, 请使用更加强大的第六代导出器tabtoy v2版本

# 导出步骤

Expand Down
Loading

0 comments on commit ac2caf5

Please sign in to comment.