ホームページ  >  記事  >  ウェブフロントエンド  >  Node を使用して Excel を JSON に変換する方法について話しましょう

Node を使用して Excel を JSON に変換する方法について話しましょう

青灯夜游
青灯夜游転載
2022-11-28 20:02:531955ブラウズ

Node を使用して Excel を JSON に変換するにはどうすればよいですか?次の記事では、Node で Excel を JSON に変換する方法を紹介します。

Node を使用して Excel を JSON に変換する方法について話しましょう

現在、Cocos Creator を使用して、My Life Restart Simulator のような単語ゲームを作成したいと考えています。

最も重要な点はデータ ストレージについてです。 My Life Restart Simulator では、ほとんどのイベントおよびタレント データは excel テーブルに保存されます。もちろん、Cocos Creator を使用したい場合は、私はそうではないので、サーバーのデプロイを計画しているため、事前にデータを JSON ファイルに変換する必要があります。その後、プロジェクトを作成し、node を使用して excel ファイルを読み取り、データを JSON に変換します。 [関連チュートリアルの推奨事項: nodejs ビデオ チュートリアル ]

ノードが excel と呼び出すライブラリがインターネット上にいくつかあります。私は node-xlsx を使用しました。 , このライブラリの最下層は強力な SheetJS 上に構築されており、xlsx ドキュメントに対して十分な形式互換性を備えています。

npm アドレス: node-xlsx - npm (npmjs.com)

Start

この前に、 new タレント テーブル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

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

を介して xlsx フォルダーと json フォルダーの相対パスを見つけます。テーブルがたくさんあるので、テーブル パス オブジェクトを作成できます

// 事件, 玩家, 门派, 天赋, 武学
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 に変換する方法について話しましょう

次に、ファイル読み取りメソッドを作成します。ここでは、fsreadFileSync

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

を使用する必要があります。読み取られた xlsxData は配列オブジェクトです。配列内の要素は実際にはシートを表します。xlsx テーブルにはテーブルが 1 つだけあるわけではないので、配列オブジェクトです。しかし、必要なものは最初の形式だけです。

Node を使用して Excel を JSON に変換する方法について話しましょう

Node を使用して Excel を JSON に変換する方法について話しましょう

したがって、xlsxData[0].data のデータを取得するだけです。data のデータは次のように配置されています。 to rows 配列オブジェクト

Node を使用して Excel を JSON に変換する方法について話しましょう

# を JSON 形式のデータに変換しますが、Attribute:Attribute value の形式に変更する必要があるので、変換するメソッドを作成できます。最初の行のプロパティは 3 行目から始まるデータと結合されて、オブジェクトの配列が作成されます。

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 に変換する方法について話しましょう

これで、fs.writeFileMethod を使用して、json ファイルへのデータの書き込みを開始できます。 、形式 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}写入成功`);
    });
}

Node を使用して Excel を JSON に変換する方法について話しましょう

Node を使用して Excel を JSON に変換する方法について話しましょう

## の形式を使用します。このような必要なゲーム修正イベントとタレントのデータ json が表示されます。

JSON データを

excel オブジェクトとして保存することも簡単です。xlsx.build メソッドを使用する必要があります。ここではあまり詳しく説明しません。 npmアドレスの使い方をご紹介します。

ノード関連の知識の詳細については、

nodejs チュートリアル を参照してください。

以上がNode を使用して Excel を JSON に変換する方法について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjuejin.cnで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。