目录
开始
首页 web前端 js教程 聊聊怎么使用Node将Excel转为JSON

聊聊怎么使用Node将Excel转为JSON

Nov 28, 2022 pm 08:02 PM
excel nodejs​ json node

怎么使用Node将Excel转为JSON?下面本篇文章给大家介绍一下Node中转换Excel成JSON的方法,希望对大家有所帮助!

聊聊怎么使用Node将Excel转为JSON

目前想使用Cocos Creator做一个文字游戏,类似于我的人生重开模拟器

那么其中最重要的一点就是关于数据的存储了。在我的人生重开模拟器中大部分事件和天赋的数据是存储在excel表格当中的,当然如果要使用Cocos Creator,因为我不准备布置服务器,所以需要将数据提前转换成JSON文件,那么可以创建一个项目,使用node读取excel文件,并通过格式转换,将数据转换成JSON。【相关教程推荐:nodejs视频教程

这里网上有一些node调用excel的库,我使用了node-xlsx,此库底层基于强大的 SheetJS 构建,对 xlsx 文档的格式兼容性足够好。

npm地址:node-xlsx - npm (npmjs.com)

开始

在此之前我已经新建了一个天赋表格talentTable.xlsx,里面已经添加了许多天赋,并且有不同的属性加成

image.png

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`)
    }
}
登录后复制

image.png

然后创建一个读取文件方法,这里需要用到fs中的readFileSync

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

这里读取到的xlsxData是一个数组对象,数组中的元素代表的其实是一张张sheet表格,xlsx表格中并不是只有一个表格,所以才会是数组对象,不过我需要的只是第一张表格。

image.png

image.png

所以获取xlsxData[0].data的数据即可,data的数据是按照行排列的数组对象

image.png

然后到转换成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;
}
登录后复制

这样返回的对象就如下了

image.png

接下来就可以将数据开始写入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), &#39;utf-8&#39;, (err)=>{
        console.log(`${jsonName}写入成功`);
    });
}
登录后复制

image.png

image.png

这样需要的游戏固定事件和天赋数据json就可以出现了。

对于JSON数据存储为excel对象也比较容易,需要用到xlsx.build方法,这里就不做过多的介绍了,可以去参考npm地址上的使用方法。

更多node相关知识,请访问:nodejs 教程

以上是聊聊怎么使用Node将Excel转为JSON的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

excel打印表格框线消失怎么办 excel打印表格框线消失怎么办 Mar 21, 2024 am 09:50 AM

如果在打开一份需要打印的文件时,在打印预览里我们会发现表格框线不知为什么消失不见了,遇到这样的情况,我们就要及时进行处理,如果你的打印文件里也出现了此类的问题,那么就和小编一起来学习下边的课程吧:excel打印表格框线消失怎么办?1、打开一份需要打印的文件,如下图所示。  2、选中所有需要的内容区域,如下图所示。  3、单击鼠标右键,选择“设置单元格格式”选项,如下图所示。  4、点击窗口上方的“边框”选项,如下图所示。  5、在左侧的线条样式中选择细实线图样,如下图所示。  6、选择“外边框”

excel同时筛选3个以上关键词怎么操作 excel同时筛选3个以上关键词怎么操作 Mar 21, 2024 pm 03:16 PM

在日常办公中经常使用Excel来处理数据,时常遇到需要使用“筛选”功能。当我们在Excel中选择执行“筛选”时,对于同一列而言,最多只能筛选两个条件,那么,你知道excel同时筛选3个以上关键词该怎么操作吗?接下来,就让小编为大家演示一遍。第一种方法是将条件逐步添加到筛选器中。如果要同时筛选出三个符合条件的明细,首先需要逐步筛选出其中一个。开始时,可以先根据条件筛选出姓“王”的员工。然后单击【确定】,接着在筛选结果中勾选【将当前所选内容添加到筛选器】。操作步骤如下所示。  同样,再次分别执行筛选

excel表格兼容模式改正常模式的方法 excel表格兼容模式改正常模式的方法 Mar 20, 2024 pm 08:01 PM

在我们日常的工作学习中,从他人处拷贝了Excel文件,打开进行内容添加或重新编辑后,再保存的有时候,有时会提示出现兼容性检查的对话框,非常的麻烦,不知道Excel软件,可不可改为正常模式呢?那么下面就由小编为大家带来解决这个问题的详细步骤,让我们一起来学习吧。最后一定记得收藏保存。1、打开一个工作表,在工作表的名称中显示多出来一个兼容模式,如图所示。2、在这个工作表中,进行了内容的修改后保存,结果总是弹出兼容检查器的对话框,很麻烦看见这个页面,如图所示。  3、点击Office按钮,点另存为,然

excel上标应该如何设置 excel上标应该如何设置 Mar 20, 2024 pm 04:30 PM

在处理数据时,有时我们会遇到数据包含了倍数、温度等等各种符号的时候,你知道excel上标应该如何设置吗?我们在使用excel处理数据时,如果不会设置上标,这可是会让我们的很多数据在录入时就会比较麻烦。今天小编就为大家带来了excel上标的具体设置方法。1.首先,让我们打开桌面上的MicrosoftOfficeExcel文档,选择需要修改为上标的文字,具体如图所示。2.然后,点击右键,在点击后出现的菜单中,选择“设置单元格格式”选项,具体如图所示。3.接下来,在系统自动弹出来的“单元格格式”对话框

excel中iif函数的用法 excel中iif函数的用法 Mar 20, 2024 pm 06:10 PM

大部分用户使用Excel都是用来处理表格数据的,其实Excel还有vba程序编写,这个除了专人士应该没有多少用户用过此功能,在vba编写时常常会用到iif函数,它其实跟if函数的功能差不多,下面小编给大家介绍下iif函数的用法。Excel中SQL语句和VBA代码中都有iif函数。iif函数和excel工作表中的IF函数用法相似,执行真假值判断,根据逻辑计算的真假值,返回不同结果。IF函数用法是(条件,是,否)。VBA中的IF语句和IIF函数,前者IF语句是控制语句可以根据条件执行不同的语句,后者

excel阅读模式在哪里设置 excel阅读模式在哪里设置 Mar 21, 2024 am 08:40 AM

在软件的学习中,我们习惯用excel,不仅仅是因为需要方便,更因为它可以满足多种实际工作中需要的格式,而且excel运用起来非常的灵活,有种模式是方便阅读的,今天带给大家的就是:excel阅读模式在哪里设置。1、打开电脑,然后再打开Excel应用,找到目标数据。2、要想在Excel中,设置阅读模式,有两种方式。第一种:Excel中,有大量的便捷处理方式,分布在Excel中布局中。在Excel的右下角,有设置阅读模式的快捷方式,找到十字标志的图案,点击即可进入阅读模式,在十字标志的右边有一个小的三

PPT幻灯片插入excel图标的操作方法 PPT幻灯片插入excel图标的操作方法 Mar 26, 2024 pm 05:40 PM

1、打开PPT,翻页至需要插入excel图标的页面。点击插入选项卡。2、点击【对象】。3、跳出以下对话框。4、点击【由文件创建】,点击【浏览】。5、选择需要插入的excel表格。6、点击确定后跳出如下页面。7、勾选【显示为图标】。8、点击确定即可。

html怎么读取excel数据 html怎么读取excel数据 Mar 27, 2024 pm 05:11 PM

html读取excel数据的方法:1、使用JavaScript库读取Excel数据;2、使用服务器端编程语言读取Excel数据。

See all articles