欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

node實(shí)現(xiàn)將json轉(zhuǎn)為excel

 更新時間:2024年11月05日 08:25:39   作者:JYeontu  
平時我們寫代碼處理的數(shù)據(jù)格式一般都是json格式的數(shù)據(jù),但有時候我們也需要將數(shù)據(jù)轉(zhuǎn)為excel格式進(jìn)行保存或分享,所以下面我們就來學(xué)習(xí)一下如何通過node實(shí)現(xiàn)json轉(zhuǎn)excel吧

說在前面

平時我們寫代碼處理的數(shù)據(jù)格式一般都是json格式的數(shù)據(jù),有時候我們也需要將數(shù)據(jù)轉(zhuǎn)為excel格式進(jìn)行保存或分享,那么我們要怎么將json數(shù)據(jù)轉(zhuǎn)為Excel呢?

比如我們現(xiàn)在有這么一個地市的JSON數(shù)據(jù):

我們需要將其轉(zhuǎn)為Excel:

1、導(dǎo)入模塊

  • 首先,通過require導(dǎo)入了json2xls、fs和一個自定義的 JSON 文件./file/地市區(qū)縣.json。
  • json2xls模塊用于將 JSON 數(shù)據(jù)轉(zhuǎn)換為 Excel 文件格式。
  • fs模塊用于文件系統(tǒng)操作,如讀取和寫入文件。
const json2xls = require("json2xls");
const fs = require("fs");
const json = require("./file/地市區(qū)縣.json");

2、數(shù)據(jù)分析

首先我們要先設(shè)計(jì)好excel表格的列名,我們現(xiàn)在json數(shù)據(jù)的鍵名是地市,鍵值是一個區(qū)縣列表,所以我們可以以地市和區(qū)縣為列名。

3、數(shù)據(jù)處理

  • 創(chuàng)建一個空數(shù)組jsonData,用于存儲最終要轉(zhuǎn)換為 Excel 的數(shù)據(jù)。
  • 使用for...in循環(huán)遍歷導(dǎo)入的 JSON 對象(假設(shè)這個 JSON 對象的結(jié)構(gòu)是以地市為鍵,對應(yīng)區(qū)縣的數(shù)組為值)。
  • 對于每個地市,獲取其對應(yīng)的區(qū)縣列表list
  • 使用map方法將區(qū)縣列表轉(zhuǎn)換為一個新的對象數(shù)組objList,其中每個對象包含地市區(qū)縣兩個屬性。
  • 使用擴(kuò)展運(yùn)算符push(...objList)將這個新的對象數(shù)組添加到jsonData數(shù)組中。
const jsonData = [];

for (const key in json) {
 const list = json[key];
 const objList = list.map((item) => {
   return {
     地市: key,
     區(qū)縣: item,
   };
 });
 jsonData.push(...objList);
}

4、轉(zhuǎn)換并寫入文件

  • 使用json2xls函數(shù)將處理后的jsonData數(shù)組轉(zhuǎn)換為 Excel 文件格式的數(shù)據(jù),并存儲在xlsData變量中。
  • 使用fs.writeFileSyncxlsData寫入名為output.xlsx的文件中,指定文件寫入模式為binary(二進(jìn)制模式)。
const xlsData = json2xls(jsonData);
fs.writeFileSync("output.xlsx", xlsData, "binary");

總體來說,就是讀取一個包含地市區(qū)縣信息的 JSON 文件,將其數(shù)據(jù)進(jìn)行處理,轉(zhuǎn)換為特定的格式(每個對象包含地市和區(qū)縣屬性),然后使用json2xls庫將處理后的 JSON 數(shù)據(jù)轉(zhuǎn)換為 Excel 文件并保存。

完整代碼

const json2xls = require("json2xls");
const fs = require("fs");
const json = require("./file/地市區(qū)縣.json");

const jsonData = [];
for (const key in json) {
  const list = json[key];
  const objList = list.map((item) => {
    return {
      地市: key,
      區(qū)縣: item,
    };
  });
  jsonData.push(...objList);
}
const xlsData = json2xls(jsonData);
fs.writeFileSync("output.xlsx", xlsData, "binary");

到此這篇關(guān)于node實(shí)現(xiàn)將json轉(zhuǎn)為excel的文章就介紹到這了,更多相關(guān)node json轉(zhuǎn)excel內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Node使用koa2實(shí)現(xiàn)一個簡單JWT鑒權(quán)的方法

    Node使用koa2實(shí)現(xiàn)一個簡單JWT鑒權(quán)的方法

    這篇文章主要介紹了Node使用koa2實(shí)現(xiàn)一個簡單JWT鑒權(quán)的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Node事件的監(jiān)聽與觸發(fā)的實(shí)現(xiàn)

    Node事件的監(jiān)聽與觸發(fā)的實(shí)現(xiàn)

    Node.js是由事件驅(qū)動的,每個任務(wù)都可以當(dāng)作一個事件來處理,本文主要介紹了Node事件的監(jiān)聽與觸發(fā)的實(shí)現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-04-04
  • Express使用html模板的詳細(xì)代碼

    Express使用html模板的詳細(xì)代碼

    本篇文章主要介紹了Express使用html模板的詳細(xì)代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • 前端包管理器npm、Yarn和pnpm的超全面比較

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

    NPM(Node Package Manager)是Node.js默認(rèn)的包管理器,這篇文章主要給大家介紹了關(guān)于前端包管理器npm、Yarn和pnpm的超全面比較,文中介紹的非常詳細(xì),需要的朋友可以參考下
    2024-09-09
  • Node.js Continuation Passing Style( CPS與回調(diào))

    Node.js Continuation Passing Style( CPS與

    這篇文章主要介紹了Node.js Continuation Passing Style,將回調(diào)函數(shù)作為參數(shù)傳遞,這種書寫方式通常被稱為Continuation Passing Style(CPS),它的本質(zhì)仍然是一個高階函數(shù),CPS最初是各大語言中對排序算法的實(shí)現(xiàn)
    2022-06-06
  • 基于docker搭建node環(huán)境開發(fā)服務(wù)器全過程

    基于docker搭建node環(huán)境開發(fā)服務(wù)器全過程

    這篇文章主要給大家介紹了關(guān)于如何基于docker搭建node環(huán)境開發(fā)服務(wù)器的相關(guān)資料,本文將采用docker技術(shù)部署一個簡單的nodejs應(yīng)用,文中通過圖文以及代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • 一文秒懂nodejs中的異步編程

    一文秒懂nodejs中的異步編程

    這篇文章主要介紹了深入理解nodejs中的異步編程,本文給大家介紹的非常想詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • 關(guān)于Sequelize連接查詢時inlude中model和association的區(qū)別詳解

    關(guān)于Sequelize連接查詢時inlude中model和association的區(qū)別詳解

    這篇文章主要介紹了關(guān)于Sequelize連接查詢時inlude中model與association的區(qū)別,文中介紹的很詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-02-02
  • node 標(biāo)準(zhǔn)輸入流和輸出流代碼實(shí)例

    node 標(biāo)準(zhǔn)輸入流和輸出流代碼實(shí)例

    這篇文章主要介紹了node 標(biāo)準(zhǔn)輸入流和輸出流代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • nodejs批量修改文件編碼格式

    nodejs批量修改文件編碼格式

    本文給大家分享一段代碼,主要是解決了在項(xiàng)目中遇到的一個問題,批量將GBK編碼轉(zhuǎn)換為UTF8,非常實(shí)用,推薦給大家。
    2015-01-01

最新評論