Rumah  >  Artikel  >  hujung hadapan web  >  Mari kita bincangkan tentang cara menggunakan Node untuk menukar Excel kepada JSON

Mari kita bincangkan tentang cara menggunakan Node untuk menukar Excel kepada JSON

青灯夜游
青灯夜游ke hadapan
2022-11-28 20:02:532027semak imbas

Bagaimana untuk menggunakan Node untuk menukar Excel kepada JSON? Artikel berikut akan memperkenalkan kepada anda kaedah menukar Excel kepada JSON dalam Node Saya harap ia akan membantu anda!

Mari kita bincangkan tentang cara menggunakan Node untuk menukar Excel kepada JSON

Pada masa ini saya mahu menggunakan Cocos Creator untuk membuat permainan perkataan, serupa dengan 我的人生重开模拟器.

Perkara yang paling penting ialah mengenai penyimpanan data. Dalam 我的人生重开模拟器, kebanyakan data acara dan bakat disimpan dalam jadual excel Sudah tentu, jika anda ingin menggunakan Cocos Creator, kerana saya tidak bercadang untuk menggunakan pelayan, saya perlu menukar data itu kepada a. JSON fail terlebih dahulu, kemudian Anda boleh membuat projek, menggunakan nod untuk membaca fail excel dan menukar data kepada JSON melalui penukaran format. [Tutorial berkaitan yang disyorkan: tutorial video nodejs]

Terdapat beberapa perpustakaan di Internet yang menggunakan nod untuk memanggil excel yang saya gunakan node-xlsx berdasarkan SheetJS yang berkuasa Dibina, keserasian format untuk dokumen xlsx cukup baik.

alamat npm: node-xlsx - npm (npmjs.com)

Mula

Sebelum ini saya telah mencipta jadual bakat baharu talentTable.xlsx telah ditambahkan padanya, dan banyak bakat telah ditambah, dan terdapat bonus atribut yang berbeza

Mari kita bincangkan tentang cara menggunakan Node untuk menukar Excel kepada JSON

pnpm initBuat projek, dan kemudian gunakan pnpm add node-xlsx ke Perpustakaan diimport ke dalam projek.

Buat fail utama excelMain.js Pustaka yang diperlukan perlu dimasukkan ke dalam fail ini

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

Anda boleh mencipta fail json yang disimpan yang diperlukan talent.json terlebih dahulu dan lulus pathCari laluan relatif folder xlsx dan json

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

Oleh kerana saya mempunyai banyak jadual, saya boleh mencipta objek laluan jadual

// 事件, 玩家, 门派, 天赋, 武学
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`)
    }
}

Mari kita bincangkan tentang cara menggunakan Node untuk menukar Excel kepada JSON

Kemudian buat kaedah membaca fail Di sini anda perlu menggunakan fsreadFileSync

// 读取数据表方法
const readFileData = (tableName)=>{
    let fname = dataPaths[tableName].xlsx
    const xlsxData = xlsx.parse(fs.readFileSync(fname));
    ......
}
dalam

xlsxData yang dibaca di sini ialah objek tatasusunan, dan elemen dalam tatasusunan ialah Ia sebenarnya mewakili helaian. Bukan hanya satu helaian dalam helaian xlsx, jadi ia adalah objek tatasusunan, tetapi saya hanya perlukan helaian pertama.

Mari kita bincangkan tentang cara menggunakan Node untuk menukar Excel kepada JSON

Mari kita bincangkan tentang cara menggunakan Node untuk menukar Excel kepada JSON

Jadi hanya dapatkan data xlsxData[0].data Data data ialah objek tatasusunan yang disusun dalam baris

Mari kita bincangkan tentang cara menggunakan Node untuk menukar Excel kepada JSON

Kemudian untuk menukar data ke dalam format JSON, ia perlu dalam format 属性:属性值, supaya anda boleh mencipta kaedah yang menggabungkan atribut baris pertama dengan data bermula dari baris ketiga untuk mencipta Array objek.

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;
}

Objek yang dikembalikan adalah seperti berikut

Mari kita bincangkan tentang cara menggunakan Node untuk menukar Excel kepada JSON

Seterusnya, anda boleh mula menulis data ke dalam fail json, menggunakan kaedah fs.writeFile, Formatnya ialah utf-8

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

Mari kita bincangkan tentang cara menggunakan Node untuk menukar Excel kepada JSON

Mari kita bincangkan tentang cara menggunakan Node untuk menukar Excel kepada JSON

supaya acara tetap permainan yang diperlukan dan data bakat json boleh muncul.

Lebih mudah untuk menyimpan data JSON sebagai objek excel Anda perlu menggunakan kaedah xlsx.build Saya tidak akan pergi ke terlalu banyak pengenalan di sini alamat npm.

Untuk lebih banyak pengetahuan berkaitan nod, sila lawati: tutorial nodejs!

Atas ialah kandungan terperinci Mari kita bincangkan tentang cara menggunakan Node untuk menukar Excel kepada JSON. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:juejin.cn. Jika ada pelanggaran, sila hubungi admin@php.cn Padam