Skip to content

Latest commit

 

History

History
158 lines (125 loc) · 7.67 KB

READEME_zh-CN.md

File metadata and controls

158 lines (125 loc) · 7.67 KB

让可视化的Excel表格,更好的管理你的json数据

npm download license

English | 简体中文

Effect preview

模板Excel文件: 模板Excel文件

使用效果: 使用效果

输出json数据: 输出json数据

Introduction

ejc-cli,前三个字母由exceljsoncli三个单词首字母组成。

现实问题

我们有时为了省去了后端的开发成本,会把一些数据直接用json存在本地,然后再用这些数据来做渲染。但是:

  • 如果需要数据的页面或模块多了,会导致对应的json文件也增多。文件多了,数据太过碎片化,管理那么多文件也变得麻烦
  • 数据量很大的时候,数据会变得很冗长,想直接找到特定的某条数据,是很困难的
  • 有时我们的数据想共享给其他非开发人员时,json不是一个很好的传播方式

为什么选择 Excel 来管理数据

  • 更方便的操作。Excel是专业的办公软件,在Excel中对数据进行增删改查,当然要比在我们的编辑器内修改要方便太多
  • 更可视化。每一个表(sheet)可以当做我们某个页面或某个模块的数据;每个表(sheet)的名字,就是我们json的名字;表里每一行数据,就是我们json每一条的数据
  • 更方便的管理。数据都集成在一个Excel文件中,更加方便我们管理所有模块或页面的数据
  • 更适合传播。json不适合在非开发人员中传播,但是Excel适用于所有人员。不但非开发人员可以对这个Excel进行修改,如果你发现Excel里面有问题,你也一样可以修改,然后再同步给其他人。

工具诞生

因此,为了解决上述问题,并且结合 Excel 的功能全面的优势,ejc-cli孕育而生,这样你只需要专注管理好 Excel 这个文件就好了。s

Quick start

1. 安装工具

npm i ejc-cli -g

2. 获取模板excel文件

你不需要自己做一个excel表格,这里已经做好了一个模板excel文件,你只需要执行:

ejc-cli gt

或者将模板文件保存到目录:

ejc-cli gt './xlsx_template/'

这样我们就能获取到一个excel模板文件了,然后把里面的数据换成你想要的就好了,对就这么简单。

3. 输出json文件

你可以去 Explanation 模块更好的了解-k-s

  • 使用全局方式设置-k-s输出

    如果你的excel文件中有多个sheet,并且它们的结构相似(像template.xlsx文件中的两个sheet),那么你可以直接设置:

    ejc-cli -i './xlsx_template/template.xlsx' -k 'order, title, date, director, genre, cast, money' -s 3 -n 'movieData, songData'
    

    这样的话,ejc-cli将会从所有sheet第3行开始,读取数据,并且输出的所有json数据的key值都为order, title, date, director, genre, cast, money

  • 单独设置-k-s输出

    如果你的excel文件中有多个sheet,每个sheet要开始读取数据的地方不一定都是第3行开始,每个sheetkey值也不一定一样,那么你可以用”|“分割符:

    ejc-cli -i './xlsx_template/template.xlsx' -k 'order, title, date | num, song_title, artist' -s '3 | 4' -n 'movieData, songData'
    

    这样的话,ejc-cli会从第3行开始读取第一个sheet的数据,第一个sheetjson数据key值是order, title, date
    ejc-cli会从第4行开始读取第二个sheet的数据,第二个sheetjson数据key值是num, song_title, artist

  • 集成到您的项目中

    • package.json 中配置相关命令:
      {
        "script": {
          "get:data": "ejc-cli -i ./xlsx_template/template.xlsx -k \"order,title,date|num,song_title,artist\" -s \"2|3\" -n 'movieData,songData'"
        }
      }
    • 运行相关scrpit命令输出数据:
      npm run get:data
      

Notice

在使用过程中,这里有以下注意事项:

  • 生成json数据时,请确保-s的值是否正确。-s代表的是,数据从每个sheet第几行开始读取,默认是第3行

  • 当设置-k值的个数小于sheet的列数时,会以-k值的个数做渲染

    你可以试试执行以下命令,看看输出的数据有什么区别

    ejc-cli -i './xlsx_template/template.xlsx' -k 'order,title' -n 'movieData,novelData'
    

    这时输出的json数据只有ordertitle两个值

  • 当你将 ejc-cli 集成到项目中时:

    • 所有语句都可以不加 ' 单引号
    • 使用 | 分隔符时,请使用转义字符,以便与不同系统兼容(2|3 => \"2|3\")

Options and commands

Usage: ejc-cli [options] [command]

=> Manage your json data better with visual excel sheets

Options:
  -v                        View current version
  -i, --input [path]        Path of excel to be converted
  -o, --output [path]       Path to the output json file
  -n, --json-name [string]  Name of the output json file
  -k, --keys [string]       The key value corresponding to each column of each sheet
  -s, --start-row [number]  Read data from what row of sheet
  -h, --help                View help

Commands:
  gt [path]                 Get the excel template file

选项

参数 是否必须 默认值 说明 补充
-v 查看当前版本
-i 要转换的excel表格所在路径
-o 当前目录的xlsx_json文件夹下 json文件输出路径
-n 默认sheet数量索引命名
data_1.json, data_2.json,...
输出的json文件名字
-k 默认会以当前每列的索引作为key
[{key_1: ''}, {key_2: ''},...]
excel表格中每列对应要设置的key值名称 可以用|来设置每个sheet导出的json数据的key
-s 3 从excel表格中哪一行开始读取数据 可以用|来设置每个sheet从第几行开始读取数据
-h 查看帮助

命令

语句 参数 说明
gt path path为获取的模板excel文件保存目录。
path为空时,获取的模板excel文件默认保存在当前目录的xlsx_template文件夹下

我们可以看看获取到的模板excel文件(template.xlsx)结构:

structure

表格的总体结构一般分三块(topmiddlebottom):

  • 第一块,我们称它为(T),指整个表格的大标题
  • 第二块,我们称它为(M),对表格每列信息的概述,也是用来设置对应的key值的(-k 'order, title, date, director, genre, cast, money'
  • 第三块,我们称它为(B),它所在的行数,就是程序要开始读取数据的行数(-s 3

How to use your own excel sheet

因为每个人的制作的excel都不一样,所以我们强烈建议你使用我们模板excel文件(template.xlsx)来管理数据,但是这个文件也许样式不一定能满足你。

所以如果你想DIY表格的样式,根据 Explanation 模块的分析,DIY你的表格时需要遵循以下规则:

  • TM模块是非必须的,但是,请保证你的excel文件里的数据,与上图的B模块结构相同
  • 请确保你的-s值是正确的