最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

node將Excel數(shù)據(jù)轉(zhuǎn)為JSON的示例代碼

 更新時(shí)間:2024年11月05日 08:30:14   作者:JYeontu  
平時(shí)工作中我們基本都會(huì)接觸到excel數(shù)據(jù)表,但是在代碼中使用和處理數(shù)據(jù)的時(shí)候通常都要先將其轉(zhuǎn)為json格式數(shù)據(jù),json格式的數(shù)據(jù)可以更加方便我們進(jìn)行處理,那么我們要怎么將Excel數(shù)據(jù)轉(zhuǎn)為JSON數(shù)據(jù)呢,接下來本文給大家詳細(xì)介紹一下

說在前面

比如我們現(xiàn)在有這么一個(gè)Excel數(shù)據(jù)表:

我們需要將其轉(zhuǎn)為JSON數(shù)據(jù),并按地市進(jìn)行分組:

1、導(dǎo)入模塊

  • 首先,通過require導(dǎo)入了xlsxfs模塊。xlsx模塊用于操作Excel文件,fs模塊用于文件系統(tǒng)操作(如讀取和寫入文件)。

2、讀取Excel文件

  • 使用xlsx.readFile函數(shù)讀取指定路徑("./file/地市區(qū)縣.xlsx")下的Excel文件,并將結(jié)果存儲(chǔ)在workBook變量中。
const workBook = xlsx.readFile("./file/地市區(qū)縣.xlsx");

3、獲取工作表數(shù)據(jù)并轉(zhuǎn)換為JSON

  • workBook中獲取名為Sheet1的工作表,并將其存儲(chǔ)在變量sheet中。
  • 然后使用xlsx.utils.sheet_to_json函數(shù)將工作表數(shù)據(jù)轉(zhuǎn)換為JSON格式,并存儲(chǔ)在sheetJson變量中。
const sheet = workBook.Sheets["Sheet1"];
const sheetJson = xlsx.utils.sheet_to_json(sheet);

獲取到的JSON數(shù)據(jù)如下:

4、構(gòu)建地區(qū)映射對(duì)象

  • 獲取到Excel的JSON數(shù)據(jù)之后,我們還需要對(duì)數(shù)據(jù)進(jìn)行處理,將同一地市的區(qū)縣歸并起來。
  • 遍歷sheetJson中的每一項(xiàng)。對(duì)于每一項(xiàng),檢查respoolMap對(duì)象中是否已經(jīng)存在對(duì)應(yīng)的地市鍵。如果不存在,則創(chuàng)建一個(gè)空數(shù)組作為該地市的值;如果存在,則獲取該數(shù)組。
  • 將當(dāng)前項(xiàng)的區(qū)縣值添加到對(duì)應(yīng)地市的數(shù)組中,并更新respoolMap對(duì)象。
const respoolMap = {};
sheetJson.forEach((item) => {
  const list = respoolMap[item.地市] || [];
  list.push(item.區(qū)縣);
  respoolMap[item.地市] = list;
});

5、寫入JSON文件

  • 使用fs.writeFileSync函數(shù)將respoolMap對(duì)象轉(zhuǎn)換為格式化的JSON字符串(通過JSON.stringify(respoolMap,null, 2)),并寫入到"./file/地市區(qū)縣.json"文件中。
fs.writeFileSync(`./file/地市區(qū)縣.json`, JSON.stringify(respoolMap,null, 2));

總體來說,就是通過xlsx讀取一個(gè)Excel文件中的數(shù)據(jù)。然后將數(shù)據(jù)重新組織,以地市為鍵,其下屬的區(qū)縣列表為值,構(gòu)建一個(gè)對(duì)象。最后將這個(gè)對(duì)象保存為一個(gè)JSON文件。

完整代碼

const xlsx = require("xlsx");
const fs = require("fs");

const workBook = xlsx.readFile("./file/地市區(qū)縣.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.區(qū)縣);
  respoolMap[item.地市] = list;
});
fs.writeFileSync(`./file/地市區(qū)縣.json`, JSON.stringify(respoolMap, null, 2));

這是一個(gè)讀取Excel數(shù)據(jù)并轉(zhuǎn)換為JSON的簡(jiǎn)單腳本,大家可以根據(jù)自己的需求進(jìn)行微調(diào)使用

到此這篇關(guān)于node將Excel數(shù)據(jù)轉(zhuǎn)為JSON的示例代碼的文章就介紹到這了,更多相關(guān)node Excel數(shù)據(jù)轉(zhuǎn)JSON內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Node.js:events事件模塊

    詳解Node.js:events事件模塊

    由于nodejs是單線程運(yùn)行的,所以nodejs需要借助事件輪詢,本篇文章主要介紹了Node.js:events事件模塊,有興趣的可以了解一下。
    2016-11-11
  • 詳解如何給Node.js版本降級(jí)

    詳解如何給Node.js版本降級(jí)

    Node.js是一個(gè)基于chrome?v8引擎的JavaScript運(yùn)行時(shí)環(huán)境,用于構(gòu)建快速、可擴(kuò)展的網(wǎng)絡(luò)應(yīng)用程序,在某些情況下,降級(jí)Node.js版本可能額是必要的,本篇文章將向您介紹如今降級(jí)Node.js版本并提供相應(yīng)的源代碼示例,需要的朋友可以參考下
    2023-11-11
  • node簡(jiǎn)單實(shí)現(xiàn)一個(gè)更改頭像功能的示例

    node簡(jiǎn)單實(shí)現(xiàn)一個(gè)更改頭像功能的示例

    本篇文章主要介紹了node簡(jiǎn)單實(shí)現(xiàn)一個(gè)更改頭像功能的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-12-12
  • Windows系統(tǒng)中使用fnm自動(dòng)管理node版本的方法

    Windows系統(tǒng)中使用fnm自動(dòng)管理node版本的方法

    在Node.js開發(fā)中,包管理工具扮演著至關(guān)重要的角色,下面這篇文章主要介紹了Windows系統(tǒng)中使用fnm自動(dòng)管理node版本的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2026-03-03
  • NodeJs 模仿SIP話機(jī)注冊(cè)的方法

    NodeJs 模仿SIP話機(jī)注冊(cè)的方法

    這篇文章主要介紹了NodeJs 模仿SIP話機(jī)注冊(cè)的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Express + Node.js實(shí)現(xiàn)登錄攔截器的實(shí)例代碼

    Express + Node.js實(shí)現(xiàn)登錄攔截器的實(shí)例代碼

    本篇文章主要介紹了Express + Node.js實(shí)現(xiàn)攔截器的實(shí)例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-07-07
  • Node.js實(shí)現(xiàn)批量去除BOM文件頭

    Node.js實(shí)現(xiàn)批量去除BOM文件頭

    這篇文章主要介紹了Node.js實(shí)現(xiàn)批量去除BOM文件頭,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2014-12-12
  • 2026年Node.js版本管理工具nvm、fnm、Volta、asdf、mise詳細(xì)對(duì)比

    2026年Node.js版本管理工具nvm、fnm、Volta、asdf、mise詳細(xì)對(duì)比

    Node.js開發(fā)中,不同項(xiàng)目常需不同Node版本,版本管理工具如nvm和fnm能有效解決這一問題,這篇文章主要介紹了2026年Node.js版本管理工具nvm、fnm、Volta、asdf、mise詳細(xì)對(duì)比相關(guān)資料,需要的朋友可以參考下
    2026-05-05
  • Node.js中SerialPort(串口)模塊使用

    Node.js中SerialPort(串口)模塊使用

    本文主要介紹了Node.js中SerialPort(串口)模塊使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 阿里大于短信驗(yàn)證碼node koa2的實(shí)現(xiàn)代碼(最新)

    阿里大于短信驗(yàn)證碼node koa2的實(shí)現(xiàn)代碼(最新)

    本文給大家分享一個(gè)最新版阿里大于短信驗(yàn)證碼node koa2的實(shí)現(xiàn)代碼及注意事項(xiàng),需要的朋友參考下吧
    2017-09-09

最新評(píng)論

高雄县| 旺苍县| 房产| 渭南市| 洪湖市| 华蓥市| 三明市| 红原县| 称多县| 吉木萨尔县| 通州区| 娄底市| 新宁县| 安仁县| 洪雅县| 台南县| 屏东县| 尉犁县| 大关县| 德江县| 普格县| 金乡县| 甘孜县| 政和县| 扎鲁特旗| 永丰县| 南涧| 广安市| 闸北区| 崇文区| 万源市| 朝阳县| 永宁县| 漳州市| 稷山县| 京山县| 阳高县| 乐业县| 黎城县| 濉溪县| 元江|