node实现将json转为excel

 更新时间:2024年11月05日 08:25:39   作者:JYeontu  
平时我们写代码处理的数据格式一般都是json格式的数据,但有时候我们也需要将数据转为excel格式进行保存或分享,所以下面我们就来学习一下如何通过node实现json转excel吧

说在前面

平时我们写代码处理的数据格式一般都是json格式的数据,有时候我们也需要将数据转为excel格式进行保存或分享,那么我们要怎么将json数据转为Excel呢?

比如我们现在有这么一个地市的JSON数据:

我们需要将其转为Excel:

1、导入模块

  • 首先,通过require导入了json2xlsfs和一个自定义的 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.writeFileSyncxlsData写入名为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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Node使用koa2实现一个简单JWT鉴权的方法

    Node使用koa2实现一个简单JWT鉴权的方法

    这篇文章主要介绍了Node使用koa2实现一个简单JWT鉴权的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Node事件的监听与触发的实现

    Node事件的监听与触发的实现

    Node.js是由事件驱动的,每个任务都可以当作一个事件来处理,本文主要介绍了Node事件的监听与触发的实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-04-04
  • Express使用html模板的详细代码

    Express使用html模板的详细代码

    本篇文章主要介绍了Express使用html模板的详细代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • 前端包管理器npm、Yarn和pnpm的超全面比较

    前端包管理器npm、Yarn和pnpm的超全面比较

    NPM(Node Package Manager)是Node.js默认的包管理器,这篇文章主要给大家介绍了关于前端包管理器npm、Yarn和pnpm的超全面比较,文中介绍的非常详细,需要的朋友可以参考下
    2024-09-09
  • Node.js Continuation Passing Style( CPS与回调)

    Node.js Continuation Passing Style( CPS与

    这篇文章主要介绍了Node.js Continuation Passing Style,将回调函数作为参数传递,这种书写方式通常被称为Continuation Passing Style(CPS),它的本质仍然是一个高阶函数,CPS最初是各大语言中对排序算法的实现
    2022-06-06
  • 基于docker搭建node环境开发服务器全过程

    基于docker搭建node环境开发服务器全过程

    这篇文章主要给大家介绍了关于如何基于docker搭建node环境开发服务器的相关资料,本文将采用docker技术部署一个简单的nodejs应用,文中通过图文以及代码介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • 一文秒懂nodejs中的异步编程

    一文秒懂nodejs中的异步编程

    这篇文章主要介绍了深入理解nodejs中的异步编程,本文给大家介绍的非常想详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • 关于Sequelize连接查询时inlude中model和association的区别详解

    关于Sequelize连接查询时inlude中model和association的区别详解

    这篇文章主要介绍了关于Sequelize连接查询时inlude中model与association的区别,文中介绍的很详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-02-02
  • node 标准输入流和输出流代码实例

    node 标准输入流和输出流代码实例

    这篇文章主要介绍了node 标准输入流和输出流代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • nodejs批量修改文件编码格式

    nodejs批量修改文件编码格式

    本文给大家分享一段代码,主要是解决了在项目中遇到的一个问题,批量将GBK编码转换为UTF8,非常实用,推荐给大家。
    2015-01-01

最新评论