真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何使用Node將Excel轉(zhuǎn)為JSON

這篇文章主要介紹了如何使用Node將Excel轉(zhuǎn)為JSON的相關知識,內(nèi)容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇如何使用Node將Excel轉(zhuǎn)為JSON文章都會有所收獲,下面我們一起來看看吧。

成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比松山網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式松山網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋松山地區(qū)。費用合理售后完善,十多年實體公司更值得信賴。

開始

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

如何使用Node將Excel轉(zhuǎn)為JSON

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

創(chuàng)建一個主文件excelMain.js,此文件中需要引入需要的庫

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

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

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

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

// 事件, 玩家, 門派, 天賦, 武學
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轉(zhuǎn)為JSON

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

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

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

如何使用Node將Excel轉(zhuǎn)為JSON

如何使用Node將Excel轉(zhuǎn)為JSON

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

如何使用Node將Excel轉(zhuǎn)為JSON

然后到轉(zhuǎn)換成JSON格式數(shù)據(jù)是,需要變成屬性:屬性值的格式,所以可創(chuàng)建一個方法,將第一行屬性和從第三行開始的數(shù)據(jù)結(jié)合,創(chuàng)建一個對象數(shù)組。

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轉(zhuǎn)為JSON

接下來就可以將數(shù)據(jù)開始寫入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轉(zhuǎn)為JSON

如何使用Node將Excel轉(zhuǎn)為JSON

這樣需要的游戲固定事件和天賦數(shù)據(jù)json就可以出現(xiàn)了。

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

關于“如何使用Node將Excel轉(zhuǎn)為JSON”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“如何使用Node將Excel轉(zhuǎn)為JSON”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


文章標題:如何使用Node將Excel轉(zhuǎn)為JSON
本文路徑:http://weahome.cn/article/jhjjgi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部