# excel-killer
## 插件说明:
插件特色:
- 插件自动监测excel文件内容变化
- 自动容错处理
- excel转json
- excel转js
- excel转lua(后续支持)
- excel转csv(后续支持)

![](../../doc/excel-killer/scene.png)
## 插件打开方式
- 菜单:扩展/excel-killer
- 快捷键: Ctrl+Shift+J
## 格式转换说明
#### excel
##### 支持的格式:
- *.xlsx, *.xls
- [示例excel](../../doc/excel-killer/test.xlsx)
##### 内容格式如下
- 第1行: 字段的索引key,这个是不能重复的,想必这个肯定是常识吧!
- 第2行: 字段的中文注释
- 尽量不要出现空Sheet,当然插件会自动跳过该Sheet
- 尽量不要出现空行,空单元格,当然插件也做了这方面的优化,空单元格统一处理为空字符串,空行直接跳过
##### 水果sheet:fruit
|id| fruit        | cost      |   num    |
|:----: | :----:    | -----:  | :----: |
|编号| 水果        | 价格    |  数量  |
|1| 香蕉        | 1      |   5    |
|2| 苹果        | 1      |   6    |
|3| 草莓        | 1      |   7    |
##### 人类sheet:man
|id| name        | age         |
|:----: | :----:    | -----:    |
|编号| 名字        | 年龄       |
|1| 小明       | 10           |
|2| 小红        | 20         |
|3| 小蓝        | 30          |


#### 转换的js代码为
```javascript
module.export = {
        fruit: {
            1: {fruit: "香蕉", cost: 1, num: 5},
            2: {fruit: "苹果", cost: 1, num: 6},
            3: {fruit: "草莓", cost: 1, num: 7}
        },
        man: {
            1: {name: "小明", age: 10},
            2: {name: "小红", age: 20},
            3: {name: "小蓝", age: 30},
        }
    }
```
#### 转换的json文件为:
- 未合并的json
> fruit.json
```json
{
    "1": {"fruit": "香蕉", "cost": 1, "num": 5},
    "2": {"fruit": "苹果", "cost": 1, "num": 6},
    "3": {"fruit": "草莓", "cost": 1, "num": 7}
}
```
> man.json
```json
{
    "1": {"name": "小明", "age": 10},
    "2": {"name": "小红", "age": 20},
    "3": {"name": "小蓝", "age": 30}
}
```
- 合并后的json
```json
{
    "fruit": {
        "1": {"fruit": "香蕉", "cost": 1, "num": 5},
        "2": {"fruit": "苹果", "cost": 1, "num": 6},
        "3": {"fruit": "草莓", "cost": 1, "num": 7}
    },
    "man": {
        "1": {"name": "小明", "age": 10},
        "2": {"name": "小红", "age": 20},
        "3": {"name": "小蓝", "age": 30}
    }
}
```


## 使用说明:
### 配置-json
#### json存放路径:
> 插件自动指定路径,不能手动指定,生成的json配置会统一存放在该目录下

#### json格式化:
> 勾选该选项,生成的json文件将会格式化之后输出,例如:
```json
{
    "test":100
}
```
>未勾选该选项,生成的json将会是一行,例如:
```json
{"test":100}
```
从上边观察可以看出:
- 格式化后的json更容易查阅,但是文件体积比较大,适合开发的时候使用
- 未格式化的json文件体积比较小,但是不容易查阅,适合项目发布的时候使用
#### 合并所有Json:
- 未勾选该选项,每个excel的sheet会生成一个对应的json配置,因此,需要保证sheet不能出现重名
- 勾选该选项,所有的json配置将合并为一个json,因此,需要手动指定json配置的文件名

### 配置-JavaScript
#### js存放路径:
> 插件自动指定路径,不能手动指定,生成的js配置会统一存放在该目录下
#### js配置文件名
> 生成的js配置的文件的名字
#### 代码格式化
> 勾选该选项,生成的js文件将会格式化之后输出,例如:
```javascript
module.exports={
    test:"100"
}
```
> 未勾选该选项,生成的js文件将会是一行,例如:
```javascript
module.exports={test:"100"}
```
是否使用该选项,和上边的同理,视情况而定.
### 配置-Excel
### Excel文件路径:
> 需要手动指定自己的excel所存放的目录,插件会识别出来目录下的所有excle文件,因此允许目录嵌套的方式存放excel
### Excel列表
- 列表中罗列出来了目录下的所有excel的sheet
- 标题右侧 **sheet[x] excel[y]** 的意思是,目录下sheet一共x个,excel文件一共y个
- 每个sheet列表条目都有一个选中项,如果勾选,则会加入到生成队列中,反之不会被生成,默认全部选中

## 插件反馈
- 详细的说明文档:点击插件的[帮助按钮](https://github.com/tidys/CocosCreatorPlugins/tree/master/packages/excel-killer/README.md)直达
- 如果使用过程中遇到任何问题,欢迎点击[QQ交谈](http://wpa.qq.com/msgrd?v=3&uin=774177933&site=qq&menu=yes)给我留言

