游戏程序员的自我修养

excel2json

在游戏项目中一般都需要由策划制作大量的游戏内容,其中很大一部分是使用Excel表来制作的。于是程序就需要把Excel文件转换成程序方便读取的格式。

之前项目使用的Excel表导入工具都是通过Office Excel组件来实现数据访问的,效率十分令人不满。一个端游项目一般要上百个表格,手游项目20、30个表格基本也是要的,于是表格导入程序的过程一般要几分钟,项目后期要接近半个小时。这里分享的这个小工具,在速度上有质的飞越,比上述方法实现的工具有接近100倍的速度提升.

版本更新

主要功能:

由于这里使用OpenXML格式直接解析,所以只支持.xlsx文件,并不支持.xls文件。

支持GUI模式和命令行模式

GUI模式方便预览;而命令行式,方便将多个表格转换工作写成一个批处理文件(.bat或者.sh),一键处理几十个表格。 例如,使用下面这个.bat批处理文件,可以一次性转换”.\excel”目录下所有的.xlsx文件到”.\json”目录:

@SET EXCEL_FOLDER=.\excel
@SET JSON_FOLDER=.\json
@SET EXE=.\excel2json.exe

@ECHO Converting excel files in folder %EXCEL_FOLDER% ...
for /f "delims=" %%i in ('dir /b /a-d /s %EXCEL_FOLDER%\*.xlsx') do (
    @echo   processing %%~nxi 
    @CALL %EXE% --excel %EXCEL_FOLDER%\%%~nxi --json %JSON_FOLDER%\%%~ni.json --header 3
)

excel2json_gui
excel2json_cmd

命令行参数

例如:excel2json –excel test.xlsx –json test.json –header 3 –array true,其中的输入和输出文件,都在当前目录下;

Excel表单格式约定

excel2json_example

在Mac、Linux上运行

这个小工具使用C#编写,编译出来的.exe通过Mono即可在Mac或者Linux上运行。