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!
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)
Sebelum ini saya telah mencipta jadual bakat baharu talentTable.xlsx
telah ditambahkan padanya, dan banyak bakat telah ditambah, dan terdapat bonus atribut yang berbeza
pnpm init
Buat 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 path
Cari 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`) } }
Kemudian buat kaedah membaca fail Di sini anda perlu menggunakan fs
readFileSync
// 读取数据表方法 const readFileData = (tableName)=>{ let fname = dataPaths[tableName].xlsx const xlsxData = xlsx.parse(fs.readFileSync(fname)); ...... }
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.
Jadi hanya dapatkan data xlsxData[0].data
Data data ialah objek tatasusunan yang disusun dalam baris
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
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), 'utf-8', (err)=>{ console.log(`${jsonName}写入成功`); }); }
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!