说在前面
平时我们写代码处理的数据格式一般都是json格式的数据,有时候我们也需要将数据转为excel格式进行保存或分享,那么我们要怎么将json数据转为excel呢?
比如我们现在有这么一个地市的json数据:
我们需要将其转为excel:
1、导入模块
- 首先,通过
require
导入了json2xls
、fs
和一个自定义的 json 文件./file/地市区县.json
。 json2xls
模块用于将 json 数据转换为 excel 文件格式。fs
模块用于文件系统操作,如读取和写入文件。
const json2xls = require("json2xls"); const fs = require("fs"); const json = require("./file/地市区县.json");
2、数据分析
首先我们要先设计好excel表格的列名,我们现在json数据的键名是地市
,键值是一个区县
列表,所以我们可以以地市和区县为列名。
3、数据处理
- 创建一个空数组
jsondata
,用于存储最终要转换为 excel 的数据。 - 使用
for...in
循环遍历导入的 json 对象(假设这个 json 对象的结构是以地市为键,对应区县的数组为值)。 - 对于每个地市,获取其对应的区县列表
list
。 - 使用
map
方法将区县列表转换为一个新的对象数组objlist
,其中每个对象包含地市
和区县
两个属性。 - 使用扩展运算符
push(...objlist)
将这个新的对象数组添加到jsondata
数组中。
const jsondata = []; for (const key in json) { const list = json[key]; const objlist = list.map((item) => { return { 地市: key, 区县: item, }; }); jsondata.push(...objlist); }
4、转换并写入文件
- 使用
json2xls
函数将处理后的jsondata
数组转换为 excel 文件格式的数据,并存储在xlsdata
变量中。 - 使用
fs.writefilesync
将xlsdata
写入名为output.xlsx
的文件中,指定文件写入模式为binary
(二进制模式)。
const xlsdata = json2xls(jsondata); fs.writefilesync("output.xlsx", xlsdata, "binary");
总体来说,就是读取一个包含地市区县信息的 json 文件,将其数据进行处理,转换为特定的格式(每个对象包含地市和区县属性),然后使用json2xls
库将处理后的 json 数据转换为 excel 文件并保存。
完整代码
const json2xls = require("json2xls"); const fs = require("fs"); const json = require("./file/地市区县.json"); const jsondata = []; for (const key in json) { const list = json[key]; const objlist = list.map((item) => { return { 地市: key, 区县: item, }; }); jsondata.push(...objlist); } const xlsdata = json2xls(jsondata); fs.writefilesync("output.xlsx", xlsdata, "binary");
到此这篇关于node实现将json转为excel的文章就介绍到这了,更多相关node json转excel内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论