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

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ū)映射對象

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

5、寫入JSON文件

  • 使用fs.writeFileSync函數(shù)將respoolMap對象轉(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è)對象。最后將這個(gè)對象保存為一個(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的簡單腳本,大家可以根據(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解在node.js中require方法的加載規(guī)則

    詳解在node.js中require方法的加載規(guī)則

    這篇文章主要介紹了詳解在node.js中require方法的加載規(guī)則,本文一步步解析了require加載規(guī)則,講述了核心的模塊,路徑形式的模塊,第三方模塊等,需要的朋友可以參考下
    2021-06-06
  • Node.js 使用 Express-Jwt和JsonWebToken 進(jìn)行Token身份驗(yàn)證的操作方法

    Node.js 使用 Express-Jwt和JsonWebToken 進(jìn)行Token身份

    這篇文章主要介紹了Node.js 使用 Express-Jwt和JsonWebToken 進(jìn)行Token身份驗(yàn)證的操作方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • node后端服務(wù)?;畹膶?shí)現(xiàn)

    node后端服務(wù)?;畹膶?shí)現(xiàn)

    這篇文章主要介紹了node后端服務(wù)?;畹膶?shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • npm?install報(bào)錯(cuò)unable?to?resolve?dependency?tree的解決辦法

    npm?install報(bào)錯(cuò)unable?to?resolve?dependency?tree的解決辦法

    在開發(fā)過程中經(jīng)常會(huì)使用npm安裝依賴包來加速開發(fā),但是在執(zhí)行npm install命令時(shí),有時(shí)會(huì)遇到各種錯(cuò)誤,下面這篇文章主要給大家介紹了關(guān)于npm?install報(bào)錯(cuò)unable?to?resolve?dependency?tree的解決辦法,需要的朋友可以參考下
    2023-05-05
  • Node.js+ES6+dropload.js實(shí)現(xiàn)移動(dòng)端下拉加載實(shí)例

    Node.js+ES6+dropload.js實(shí)現(xiàn)移動(dòng)端下拉加載實(shí)例

    這個(gè)demo服務(wù)由Node搭建服務(wù)、下拉加載使用插件dropload,數(shù)據(jù)渲染應(yīng)用了ES6中的模板字符串。有興趣的小伙伴可以自己嘗試下
    2017-06-06
  • nodejs+mongodb aggregate級聯(lián)查詢操作示例

    nodejs+mongodb aggregate級聯(lián)查詢操作示例

    這篇文章主要介紹了nodejs+mongodb aggregate級聯(lián)查詢操作,結(jié)合實(shí)例形式分析了基于nodejs的mongodb數(shù)據(jù)庫級聯(lián)查詢相關(guān)操作技巧,需要的朋友可以參考下
    2018-03-03
  • 如何解決安裝websocket還是報(bào)錯(cuò)Cannot find module'ws'問題

    如何解決安裝websocket還是報(bào)錯(cuò)Cannot find module'ws&apos

    這篇文章主要介紹了如何解決安裝websocket還是報(bào)Cannot find module'ws'問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Koa從零搭建到Api實(shí)現(xiàn)項(xiàng)目的搭建方法

    Koa從零搭建到Api實(shí)現(xiàn)項(xiàng)目的搭建方法

    這篇文章主要介紹了Koa從零搭建到Api實(shí)現(xiàn)項(xiàng)目的搭建方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 詳解node如何讓一個(gè)端口同時(shí)支持https與http

    詳解node如何讓一個(gè)端口同時(shí)支持https與http

    眾所周知node是一個(gè)高性能的web服務(wù)器,使用它可以很簡單的創(chuàng)建一個(gè)http或https的服務(wù)器。這篇文章主要介紹了詳解node如何讓一個(gè)端口同時(shí)支持https與http
    2017-07-07
  • node.js中的fs.chmodSync方法使用說明

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

    這篇文章主要介紹了node.js中的fs.chmodSync方法使用說明,本文介紹了fs.chmodSync方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12

最新評論