node将Excel数据转为JSON的示例代码

 更新时间:2024年11月05日 08:30:14   作者:JYeontu  
平时工作中我们基本都会接触到excel数据表,但是在代码中使用和处理数据的时候通常都要先将其转为json格式数据,json格式的数据可以更加方便我们进行处理,那么我们要怎么将Excel数据转为JSON数据呢,接下来本文给大家详细介绍一下

说在前面

比如我们现在有这么一个Excel数据表:

我们需要将其转为JSON数据,并按地市进行分组:

1、导入模块

  • 首先,通过require导入了xlsxfs模块。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.js中require方法的加载规则

    详解在node.js中require方法的加载规则

    这篇文章主要介绍了详解在node.js中require方法的加载规则,本文一步步解析了require加载规则,讲述了核心的模块,路径形式的模块,第三方模块等,需要的朋友可以参考下
    2021-06-06
  • Node.js 使用 Express-Jwt和JsonWebToken 进行Token身份验证的操作方法

    Node.js 使用 Express-Jwt和JsonWebToken 进行Token身份

    这篇文章主要介绍了Node.js 使用 Express-Jwt和JsonWebToken 进行Token身份验证的操作方法,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-08-08
  • node后端服务保活的实现

    node后端服务保活的实现

    这篇文章主要介绍了node后端服务保活的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • npm install报错unable to resolve dependency tree的解决办法

    npm install报错unable to resolve dependency tree的解决办法

    在开发过程中经常会使用npm安装依赖包来加速开发,但是在执行npm install命令时,有时会遇到各种错误,下面这篇文章主要给大家介绍了关于npm install报错unable to resolve dependency tree的解决办法,需要的朋友可以参考下
    2023-05-05
  • Node.js+ES6+dropload.js实现移动端下拉加载实例

    Node.js+ES6+dropload.js实现移动端下拉加载实例

    这个demo服务由Node搭建服务、下拉加载使用插件dropload,数据渲染应用了ES6中的模板字符串。有兴趣的小伙伴可以自己尝试下
    2017-06-06
  • nodejs+mongodb aggregate级联查询操作示例

    nodejs+mongodb aggregate级联查询操作示例

    这篇文章主要介绍了nodejs+mongodb aggregate级联查询操作,结合实例形式分析了基于nodejs的mongodb数据库级联查询相关操作技巧,需要的朋友可以参考下
    2018-03-03
  • 如何解决安装websocket还是报错Cannot find module'ws'问题

    如何解决安装websocket还是报错Cannot find module'ws&apos

    这篇文章主要介绍了如何解决安装websocket还是报Cannot find module'ws'问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Koa从零搭建到Api实现项目的搭建方法

    Koa从零搭建到Api实现项目的搭建方法

    这篇文章主要介绍了Koa从零搭建到Api实现项目的搭建方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • 详解node如何让一个端口同时支持https与http

    详解node如何让一个端口同时支持https与http

    众所周知node是一个高性能的web服务器,使用它可以很简单的创建一个http或https的服务器。这篇文章主要介绍了详解node如何让一个端口同时支持https与http
    2017-07-07
  • node.js中的fs.chmodSync方法使用说明

    node.js中的fs.chmodSync方法使用说明

    这篇文章主要介绍了node.js中的fs.chmodSync方法使用说明,本文介绍了fs.chmodSync方法说明、语法、接收参数、使用实例和实现源码,需要的朋友可以参考下
    2014-12-12

最新评论