【ts】【cocos creator】excel表格转JSON

需要将表格导出为text格式放到项目resources/text文件夹下
新建场景,挂载到Canvas上运行

表格文件格式:
在这里插入图片描述
保存格式选text
在这里插入图片描述

在这里插入图片描述

tableToJson :


import CryptoJS = require('./FileSaver');

const { ccclass, property } = cc._decorator;

@ccclass
export default class tableToJson extends cc.Component {
    protected start(): void {
        this.loadRes("text", (data) => {
            cc.log(data)
            data.forEach(element => {
                cc.log(element.text)
                this.readData(element.text, element._name)
            });
        })
    }

    readData(text, name) {
        let json = {}
        let arr = text.split("\n")
        let head = arr.shift().split("\r")[0].split("\t")
        let type = arr.shift().split("\r")[0].split("\t")
        arr.forEach(element => {
            let jsonArr = element.split("\r")[0].split("\t")
            if (!jsonArr) return;
            for (let i = 0; i < head.length; i++) {
                let headName = head[i];
                if (!jsonArr[i]) {
                    continue;
                }
                let data = jsonArr[i]
                if (!json[jsonArr[0]]) {
                    json[jsonArr[0]] = {}
                }
                if (type[i] == 'int') {
                    json[jsonArr[0]][headName] = Number(data)
                }
                else {
                    json[jsonArr[0]][headName] = data + ""
                }
            }
        });
        cc.log(json)
        this.downloadFile(JSON.stringify(json), name + ".json");
    }

    //保存
    downloadFile(content, filename) {
        //content 为写入文件的内容,可以通过获取文本框的value写入
        var file = new File([content], filename, { type: "text/plain;" });  //type: "text/plain;charset=utf-8"
        CryptoJS.saveAs(file);
    }


    //加载resources下文件
    loadRes(url, completeCallback) {
        if (!url) {
            console.error("url为空!!");
            return;
        }
        let extname = cc.path.extname(url);
        if (extname) {
            // strip extname
            url = url.slice(0, - extname.length);
        }
        cc.resources.loadDir(url, cc.Asset, null, (err, asset: cc.Asset[]) => {
            if (err) {
                console.error("加载失败", url, "\n", err);
                Editor.log("加载失败", url, err);
                return;
            }
            completeCallback(asset);
        });
    }

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/77974.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

线程|线程的使用、四种实现方式

1.线程的实现方式 1.用户级线程 开销小&#xff0c;用户空间就可以创建多个。缺点是&#xff1a;内核无法感知用户级多个线程的存在&#xff0c;把其当作只有一个线程&#xff0c;所以只会提供一个处理器。 2.内核级线程 相对于用户级开销稍微大一点&#xff0c;可以利用多…

JS逆向-某招聘平台token

前言 本文是该专栏的第56篇,后面会持续分享python爬虫干货知识,记得关注。 通常情况下,JS调试相对方便,只需要chrome或者一些抓包工具,扩展插件,就可以顺利完成逆向分析。目前加密参数的常用逆向方式大致可分为以下几种,一种是根据源码的生成逻辑还原加密代码,一种是补…

16.4 【Linux】特殊文件与程序

16.4.1 具有 SUID/SGID 权限的指令执行状态 SUID 的权限其实与程序的相关性非常的大&#xff01;为什么呢&#xff1f;先来看看 SUID 的程序是如何被一般使用者执行&#xff0c;且具有什么特色呢&#xff1f; SUID 权限仅对二进制程序&#xff08;binary program&#xff09;…

javaee dom4j读取xml文件

引入jar包 dom4j-1.6.1.jar 创建xml文件 <?xml version"1.0" encoding"UTF-8"?> <books><book id"1"><title ID"t1">背影</title><price>88</price><author>三毛</author>…

Flink的Standalone部署实战

在Flink是通用的框架&#xff0c;以混合和匹配的方式支持部署不同场景&#xff0c;而Standalone单机部署方便快速部署&#xff0c;记录本地部署过程&#xff0c;方便备查。 环境要求 1&#xff09;JDK1.8及以上 2&#xff09;flink-1.14.3 3&#xff09;CentOS7 Flink相关信…

XXL-JOB学习笔记——调度中心

集群部署配置 3.1.服务启动 XXL-JOB的集群部署非常简单&#xff0c;只需要注意两点&#xff1a; 集群节点都连接的是同一个数据库。 多台机器部署时&#xff0c;需要统一系统时间&#xff0c;如果是单个机器部署&#xff0c;则不用管这条。 现在是在同一台机器中&#xff0c;…

Vue--》打造个性化医疗服务的医院预约系统(五)

今天开始使用 vue3 + ts 搭建一个医院预约系统的前台页面,因为文章会将项目的每一个地方代码的书写都会讲解到,所以本项目会分成好几篇文章进行讲解,我会在最后一篇文章中会将项目代码开源到我的GithHub上,大家可以自行去进行下载运行,希望本文章对有帮助的朋友们能多多关…

【MySQL--->表的操作】

文章目录 [TOC](文章目录) 一、创建表二、查看表三、修改表四、删除表drop table 表名; ![在这里插入图片描述](https://img-blog.csdnimg.cn/15227b8335364d41bd01b4b4dd83ee55.png) 一、创建表 语句格式:create table 表名(列名 类型,…)字符集 校验规则 存储引擎;字符集和校…

jmeter中用户参数和用户定义的变量的区别

如果使用jmeter做过参数化的人都知道&#xff0c;参数化的方式有多种&#xff0c;其中一种就是使用用户定义的变量&#xff0c;还有一种是使用用户参数。那么&#xff0c;这两个有什么异同呢&#xff1f; 一、先说相同的点&#xff1a; 1、都可以参数化&#xff0c;以供sample…

tsconfig.json和jsconfig.json配置

{// 编译选项"compilerOptions": {// 生成代码的语言版本&#xff1a;将我们写的 TS 代码编译成哪个版本的 JS 代码// 命令行&#xff1a; tsc --target es5 11-测试TS配置文件.ts"target": "es5",// 指定要包含在编译中的 library"lib&quo…

(三)Unity开发Vision Pro——入门

3.入门 1.入门 本节涵盖了几个重要主题&#xff0c;可帮助您加快visionOS 平台开发速度。在这里&#xff0c;您将找到构建第一个 Unity PolySpatial XR 应用程序的分步指南的链接&#xff0c;以及 PolySpatial XR 开发时的一些开发最佳实践。 2.开发与迭代 有关先决条件、开…

Three.js--》✨ 阳 光 dua 郎 大 男 孩 ✨——阿伟的自述

不要让鲲流太嚣张&#xff0c;我们杰流才是最弔的 ———— 阳光dua郎大男孩 目录 项目搭建 初始化three.js基础代码 获取项目所需素材 加载图片语音模型 今天简单实现一个three.js的3D故事小游戏&#xff0c;加强自己对three知识的掌握与学习&#xff0c;只有在项目中才能…

LVS负载均衡群集部署(LVS-NAT模型实例)

一、集群 1.1集群的含义 Cluster&#xff0c;集群、群集,为解决某个特定问题将多台计算机组合起来形成的单个系统。 由多台主机构成&#xff0c;但对外只表现为一个整体。 1.2群集的三种类型 1.2.1负载均衡群集 LB&#xff1a; Load Balancing&#xff0c;负载均衡&#x…

129.【Spring 注解 IOC】

Spring 注解 (一)、组件注册1. Configuration 与 Bean 容器注册组件(1).无注解注入方式(2).注解注入方式 2. ComponentScan 自动扫描组件和自动扫描规则(1).无注解扫描方式(2).注解扫描注入方式(3).指定扫描或不扫描的包 (过滤) 3. 自定义TypeFilter指定过滤规则 Filter(1).自定…

JDBC API

DriverManager : 注册驱动 Class.forName("com.mysql.jdbc.Driver"); 获取数据库连接 url &#xff1a; 连接路径 语法&#xff1a;jdbc:mysql://ip地址(域名):端口号/数据库名称?参数键值对1&参数键值对2… 示例&#xff1a;jdbc:mysql://127.0.0.1:3306/db1 细…

IOS开发-XCode14介绍与入门

IOS开发-XCode14介绍与入门 1. XCODE14的小吐槽2. XCODE的功能bar一览3. XCODE项目配置一览4. XCODE更改DEBUG/RELEASE模式5. XCODE单元测试 1. XCODE14的小吐槽 iOS开发工具一直有个毛病&#xff0c;就是新版本的开发工具的总会有一些奇奇怪怪的bug。比如在我的Mac-Pro&#…

当众讲话培训的需求分析

标题&#xff1a;当众讲话培训的需求分析 摘要&#xff1a;当众讲话是现代社会中一项重要的技能&#xff0c;对于个人和职业发展都具有重要意义。然而&#xff0c;许多人面临着当众讲话的困难和挑战。本论文旨在分析当众讲话培训的需求&#xff0c;探讨为什么人们需要这种培训…

Java版工程项目管理系统平台+企业工程系统源码+助力工程企业实现数字化管理 em

​ 鸿鹄工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离构建工程项目管理系统 1. 项目背景 一、随着公司的快速发展&#xff0c;企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性&#xff0c;公司对内部…

vueuse常用方法

useDateFormat 时间格式化 <script setup lang"ts">import { useNow, useDateFormat } from vueuse/coreconst formatted useDateFormat(useNow(), YYYY-MM-DD HH:mm:ss)</script><template><div>{{ formatted }}</div> </templa…

【实际开发21】- 项目部署

目录 1. 项目打包方式就两种 : war、jar 1. Windows 环境运行 Jar 包 2. Windows 后台运行 jar 包 1. cmd 下执行方式 2. bat 批处理方式 - ( Batch ) 3. 启动 : 在 xx.jar 同级目录下建立 run.bat 文件 4. 项目部署打包 忽略 test 文件 2. CICD 自动化部署 3. 代码质…