# xlsxTools **Repository Path**: sleepfisher/xlsx-tools ## Basic Information - **Project Name**: xlsxTools - **Description**: xlsx转表工具,支持xlsx转成json,二进制文件,常量表。也可以导出ts代码,以及自己编写js插件。 - **Primary Language**: TypeScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-09-14 - **Last Updated**: 2021-12-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # xlsxconvert #### 介绍 将文档表格转换为自定义格式,目前只支持xlsx #### 用法 1. 初始化配置 进入你要转表的目录,然后在此目录打开命令行工具。 输入 `tablec -init`,可以生成最基本的配置 2. 转表 用法1: 进入 tablec.json 所在的目录,然后在此目录打开命令行工具。 输入 `tablec`,即可开始转表 用法2: 随意目录打开命令行工具 输入 `tablec D:/static/table/tablec.json` #### 转表配置 tablec.json ``` json { "input": { "path": "",// 如果这里填了,则是输入表的路径 "exportPrefix": "sh"// 需要导出的表明的前缀,即:sh的前缀的都导出 }, "output": [ { "type": "json", "path": [ "../output/json"/**导出json的路径,可以是字符串也可以是列表,为空则不导出json文件*/ ], "dataSplit": 0,// (未实现)合并数据的方式,默认0; 1为数据和title分离 "merge": [ { "files": [],//(未实现,先填空)文件分开组合 "compress": 1,//是否压缩 "path": "../output/json/allinone",//合并后的文件路径 "name": "data",//合并后的文件名 "nameExt": ".config",//合并后的文件扩展名 "branchSplit": 1// 是否要将不同的平台分开合并 } ] }, { "type": "ts", "path": [ "../output/ts"/**导出ts的路径,可以是字符串也可以是列表*/ ], "fileName": "sdata"/** 导出的ts的名字,不填默认为sdata*/ } ], "tsOption": { /**导出ts时的设置,不设置则默认为以下设置*/ "tablePrefix": "SeRes",/**ts导出的接口或类的前缀,一般后面是表名*/ "typePrefix": "Se"/**ts导出类型的前缀,一般后面是Enum,Tags等...*/ }, "fontPath": "../output/font",/**文字去重后的导出txt文本路径,不设置则不导出font文件*/ "errorLog": {/**如果检查出错的导出log,不设置则不导出log*/ "check": true, /**是否检查错误*/ "outputPath": "../output/errlog"/**错误输出路径,未输出则无错误*/ }, "plugin": {/** 使用本地自定义插件的设置,不设置则只会运行默认插件目录和自动插件目录,自动目录为json文件同级的plugins目录*/ "path": "" /**指定插件的路径*/ } } ``` 插件demo[地址](https://gitee.com/sleepfisher/tableconvertjs-plugins-demo) #### 表的规则 1. 表格的第一行为:表头配置,使用alt+Enter可以在一行中,分为两行,这时,第二行可以使用附加内容 eg:primaryKey:true(表示是主键,每个表都需要主键);enum:枚举1|1|枚举2|2(表示枚举内容) 2. 表格的第二行为:表头的注释 3. 从第三行开始,为表的具体内容数据,如果是枚举或tags类型,填写枚举的中文(枚举列表用|分割开的0,2,4...的index位置的字符串) 如果是`string[],Array,number[]`之类的,则可以用`,`隔开 #### 插件的规则 外部插件只需要实现start方法即可,为js文件 ``` js "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Hello = void 0; var Hello = /** @class */ (function () { function Hello(args) { this._convert = args;// 代码内调用时,默认会将转表类传入,其中缓存了所有表的源数据和转完后的数据集 } Hello.prototype.start = function (data, callback) { console.log('hello',this._convert.convertCfg)// 这里拿到的是转表的配置 }; return Hello; }()); exports.PlugIn = Hello; // 这里注意导出的名字是PlugIn ``` ### 解析代码 查看代码包的core目录下