参数列表
x2f [ input ] [ flatc options ] [ xlsx-fbs options ]
input 选项
Excel 文件路径或 Excel 所在的文件夹路径,传入文件则转换单张表,传入路径则 递归 转换文件夹下的所有表,不传默认转换 x2f
执行路径下的所有表。
flatc 选项
可转换的代码语言和 flatc 的完整参数列表请参考 FlatBuffers 文档,xlsx-fbs 会将参数传递给 flatc。以下列举一些常用的:
--cpp --csharp --ts --java
等,生成对应语言的代码。
xlsx-fbs 选项
-
-o, --output <path>
输出路径,默认输出到执行xlsx-fbs
的文件夹的output/
下。 -
-n, --namespace <name>
生成代码的命名空间,默认是Xlsx
。 -
-k, --default-key <field>
默认不使用 key 属性,传入后,若表里没有设置 key 属性的字段,则使用该字段作为 key。 -
--binary-extension <ext>
输出的二进制文件的后缀名,默认输出 bin,你爱发疯可以填 wtf.bytes。 -
--censored-fields <fields>
删减字段,使用,
连接,会生成一份删减版本的文件到output_censored/
目录。(注意不是删除数据,而是把整个字段从 .fbs 中删除!) -
--censored-output <path>
指定删减表的输出路径,默认是${output}_censored/
。 -
--output-bin <path>
拷贝输出的 bin 到指定路径。此类拷贝参数仅批量打表可用,且都会保留原输出路径下的文件。 -
--output-csharp <path>
拷贝输出的代码到指定路径,以 C# 为例,其他请替换成对应语言名。 -
--censored-output-bin <path>
拷贝删减版输出的 bin 到指定路径。 -
--censored-output-csharp <path>
拷贝删减版输出的代码到指定路径,以 C# 为例,其他请替换成对应语言名。 -
--clean-output
批量打表前,强制清空输出目录,小心使用,不要误删无辜。 -
--empty-string
表中字符串类型的字段在创建二进制时默认填充空字符串而不是 null。 -
--disable-merge-table
批量打表时,若在配置表中配置了merge
字段,默认会为这些表生成mergeTable
的代码和二进制,不想要此功能可禁用。 -
--disable-incremental
批量打表默认开启增量打表,也可以手动关闭。 -
--enable-streaming-read
开启 .xlsx 格式的流式读取,速度快,内存小,中文可能会乱码😠,还有不稳定出现数据变成 sharedString 的 bug,建议先不要用,等 ExcelJS 项目修复。 -
--table-class-suffix <suffix>
生成的表格类名后缀,默认是空字符串。比如item.xlsx
表生成的表格类名就是Item
。 -
--data-class-suffix <suffix>
生成的表格数据类名后缀,默认是Info
。比如item.xlsx
表生成的数据类名就是ItemInfo
;必须避免出现使用类后缀结尾命名的表,比如批量打表时,目录下同时有drop.xlsx
和dropInfo.xlsx
,那么第一张表的数据类名会和第二张表的类名冲突,BOOM💥。 -
--multi-thread <number>
批量打表时的多线程数量,默认 6 。 -
--minimal-info
最小化输出信息,可选范围log < info < warn < error
,默认info
。 -
--allow-wild-table
批量打表时允许打野表($tables.xlsx中未配置的表)。慎用,确保不会把奇怪的东西打出来。信息属性页的默认值:
- A: 数据页的字段名(可随意填写,和属性页做映射关系,并作为生成的 .fbs 中的字段名注释)
- B: 字段对应的变量名(对应 .fbs 中的 field,和代码中的成员字段名)
- C: 字段对应的类型(
short
,int
,string
... 等) - D: 字段的默认值 (对应 .fbs 中的默认值)
- E: 字段的属性 (对应 .fbs 中的 Attribute)
-
--property-order
自定义属性页顺序,默认 ABCDE。可根据实际表格中列的顺序来定义,例如想直接用表格属性页中 A 列的字段名作为变量名,B列已经定义了类型,并且 C 列被注释占用,那就传入 AABDE,顺序与 字段名->变量名->类型->默认值->属性 对应即可。 -
--csharp-unity-loader
生成 Unity 的表格加载类,数据页需配置 int 类型的 id 字段。 -
--csharp-unity-loader-suffix
表格加载类后缀,默认Table
,要想简短可以用s
。 -
--js
打包 js。 浏览器用输出的.js
, node 用.cjs.js
或.esm.js
。 -
--js-sourcemap
-
--js-exclude-flatbuffers
打包的 js 中移除 flatbuffers 代码,确保在外部正确引入。 -
--js-browser-target <target>
默认es2017
,可以传哪些自己研究,使用,
连接,比如--js-browser-target "es2020,chrome58,edge16,firefox57"
-
--js-node-target <target>
默认node20
。