中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用Node轉換Excel成JSON

發布時間:2022-11-29 09:54:09 來源:億速云 閱讀:97 作者:iii 欄目:開發技術

這篇“怎么用Node轉換Excel成JSON”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“怎么用Node轉換Excel成JSON”文章吧。

開始

在此之前我已經新建了一個天賦表格talentTable.xlsx,里面已經添加了許多天賦,并且有不同的屬性加成

怎么用Node轉換Excel成JSON

pnpm init創建一個項目,然后使用pnpm add node-xlsx將庫導入項目當中。

創建一個主文件excelMain.js,此文件中需要引入需要的庫

import { fileURLToPath } from 'node:url'
import path from 'path';
import fs from 'fs';
import xlsx from 'node-xlsx';

可以提前先將需要的存儲的json文件talent.json創建好,通過path將xlsx和json的文件夾相對路徑找到

// 獲取 __dirname 的 ESM 寫法
const __dirname = path.dirname(fileURLToPath(import.meta.url))
// xlsx文件路徑
const xlsxPath = path.resolve(__dirname, '../../assets/JsonData');

因為我有很幾個表格,所以可以創建一個表格的路徑對象

// 事件, 玩家, 門派, 天賦, 武學
let dataNames = ['event', 'player', 'sect', 'talent', 'skill']
let dataPaths = {};
for(let iname of dataNames) {
    dataPaths[iname] = {
        xlsx: path.resolve(xlsxPath, `./${iname}Table.xlsx`),
        json: path.resolve(xlsxPath, `./${iname}.json`)
    }
}

怎么用Node轉換Excel成JSON

然后創建一個讀取文件方法,這里需要用到fs中的readFileSync

// 讀取數據表方法
const readFileData = (tableName)=>{
    let fname = dataPaths[tableName].xlsx
    const xlsxData = xlsx.parse(fs.readFileSync(fname));
    ......
}

這里讀取到的xlsxData是一個數組對象,數組中的元素代表的其實是一張張sheet表格,xlsx表格中并不是只有一個表格,所以才會是數組對象,不過我需要的只是第一張表格。

怎么用Node轉換Excel成JSON

怎么用Node轉換Excel成JSON

所以獲取xlsxData[0].data的數據即可,data的數據是按照行排列的數組對象

怎么用Node轉換Excel成JSON

然后到轉換成JSON格式數據是,需要變成屬性:屬性值的格式,所以可創建一個方法,將第一行屬性和從第三行開始的數據結合,創建一個對象數組。

const oneAndTwo = (arr)=>{
    if (arr.length <= 2) return [];
    let newarr = []
    for(let i = 2; i < arr.length; i++) {
        let newobj = {};
        for(let j = 0; j < arr[0].length; j++) {
            let jname = arr[0][j];
            newobj[jname] = (arr[i][j] != undefined)? arr[i][j] : null;
        }
        newarr.push(newobj)
    }
    return newarr;
}

這樣返回的對象就如下了

怎么用Node轉換Excel成JSON

接下來就可以將數據開始寫入json文件當中,使用fs.writeFile方法,格式使用utf-8即可

// 寫入JSON文件方法
const writeJson = (arr, jsonName)=>{
    let path = dataPaths[jsonName].json;
    let d = { data: arr }
    fs.writeFile(path, JSON.stringify(d), 'utf-8', (err)=>{
        console.log(`${jsonName}寫入成功`);
    });
}

怎么用Node轉換Excel成JSON

怎么用Node轉換Excel成JSON

這樣需要的游戲固定事件和天賦數據json就可以出現了。

對于JSON數據存儲為excel對象也比較容易,需要用到xlsx.build方法,這里就不做過多的介紹了,可以去參考npm地址上的使用方法。

以上就是關于“怎么用Node轉換Excel成JSON”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新宁县| 永泰县| 河池市| 华亭县| 七台河市| 鄂伦春自治旗| 临高县| 紫金县| 大名县| 桂东县| 广宗县| 新宁县| 大渡口区| 陈巴尔虎旗| 安顺市| 延吉市| 青河县| 无为县| 安远县| 兖州市| 绥德县| 延边| 航空| 牟定县| 隆回县| 榆社县| 加查县| 泌阳县| 赞皇县| 曲靖市| 上饶县| 吉木萨尔县| 渭源县| 临安市| 开远市| 顺昌县| 沙雅县| 溆浦县| 方山县| 苍山县| 曲水县|