node将Excel数据转为JSON的示例代码
说在前面
比如我们现在有这么一个Excel数据表:
我们需要将其转为JSON数据,并按地市进行分组:
1、导入模块
- 首先,通过
require
导入了xlsx
和fs
模块。xlsx
模块用于操作Excel文件,fs
模块用于文件系统操作(如读取和写入文件)。
2、读取Excel文件
- 使用
xlsx.readFile
函数读取指定路径("./file/地市区县.xlsx"
)下的Excel文件,并将结果存储在workBook
变量中。
const workBook = xlsx.readFile("./file/地市区县.xlsx");
3、获取工作表数据并转换为JSON
- 从
workBook
中获取名为Sheet1
的工作表,并将其存储在变量sheet
中。 - 然后使用
xlsx.utils.sheet_to_json
函数将工作表数据转换为JSON格式,并存储在sheetJson
变量中。
const sheet = workBook.Sheets["Sheet1"]; const sheetJson = xlsx.utils.sheet_to_json(sheet);
获取到的JSON数据如下:
4、构建地区映射对象
- 获取到Excel的JSON数据之后,我们还需要对数据进行处理,将同一地市的区县归并起来。
- 遍历
sheetJson
中的每一项。对于每一项,检查respoolMap
对象中是否已经存在对应的地市键。如果不存在,则创建一个空数组作为该地市的值;如果存在,则获取该数组。 - 将当前项的区县值添加到对应地市的数组中,并更新
respoolMap
对象。
const respoolMap = {}; sheetJson.forEach((item) => { const list = respoolMap[item.地市] || []; list.push(item.区县); respoolMap[item.地市] = list; });
5、写入JSON文件
- 使用
fs.writeFileSync
函数将respoolMap
对象转换为格式化的JSON字符串(通过JSON.stringify(respoolMap,null, 2)
),并写入到"./file/地市区县.json"
文件中。
fs.writeFileSync(`./file/地市区县.json`, JSON.stringify(respoolMap,null, 2));
总体来说,就是通过xlsx读取一个Excel文件中的数据。然后将数据重新组织,以地市为键,其下属的区县列表为值,构建一个对象。最后将这个对象保存为一个JSON文件。
完整代码
const xlsx = require("xlsx"); const fs = require("fs"); const workBook = xlsx.readFile("./file/地市区县.xlsx"); const sheet = workBook.Sheets["Sheet1"]; const sheetJson = xlsx.utils.sheet_to_json(sheet); const respoolMap = {}; sheetJson.forEach((item) => { const list = respoolMap[item.地市] || []; list.push(item.区县); respoolMap[item.地市] = list; }); fs.writeFileSync(`./file/地市区县.json`, JSON.stringify(respoolMap, null, 2));
这是一个读取Excel数据并转换为JSON的简单脚本,大家可以根据自己的需求进行微调使用
到此这篇关于node将Excel数据转为JSON的示例代码的文章就介绍到这了,更多相关node Excel数据转JSON内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Node 文件查找优先级及 Require 方法文件查找策略
这篇文章主要介绍了Node文件查找优先级及Require方法文件查找策略。文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下2022-09-09nodejs express路由匹配控制及Router模块化使用详解
这篇文章主要为大家介绍了nodejs express路由匹配控制及Router模块化使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-10-10详解node.js平台下Express的session与cookie模块包的配置
本篇文章主要介绍了详解node.js平台下Express的session与cookie模块包的配置,具有一定的参考价值,有兴趣的可以了解一下。2017-04-04Node.js中path.resolve与path.join的区别与作用详解
path.resolve和path.join都是属于path核心模块下的方法,用来拼接路径,下面这篇文章主要给大家介绍了关于Node.js中path.resolve与path.join的区别与作用的相关资料,需要的朋友可以参考下2023-03-03nodejs子进程child_process和cluster模块深入解析
本文从node的单线程单进程的理解触发,介绍了child_process模块和cluster模块,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-09-09
最新评论