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

news/2024/7/21 5:29:46 标签: excel, json, javascript, cocos2d, 表格转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);
        });
    }

}


http://www.niftyadmin.cn/n/4936461.html

相关文章

实战篇之基于二进制思想的用户标签系统(Mysql+SpringBoot)

一&#xff1a; 计算机中的二进制 计算机以二进制表示数据&#xff0c;以表示电路中的正反。在二进制下&#xff0c;一个位只有 0 和 1 。逢二进一 位。类似十进制下&#xff0c;一个位只有 0~9 。逢十进一位。 二&#xff1a; 进制常用运算 &#xff08;位运算&#xff09;…

034_小驰私房菜_[问题复盘] Qcom平台,某些三方相机拍照旋转90度

全网最具价值的Android Camera开发学习系列资料~ 作者:8年Android Camera开发,从Camera app一直做到Hal和驱动~ 欢迎订阅,相信能扩展你的知识面,提升个人能力~ 【一、问题】 某些三方相机,预览正常,拍照旋转90度 【二、问题排查】 1 ) HAL这边Jpeg编码数据在哪个地方…

Docker查看、创建、进入容器相关的命令

1.查看、创建、进入容器的指令 用-it指令创建出来的容器&#xff0c;创建完成之后会立马进入容器。退出之后立马关闭容器。 docker run -it --namec1 centos:7 /bin/bash退出容器&#xff1a; exit查看现在正在运行的容器命令&#xff1a; docker ps查看历史容器&#xff0…

QT生成Word PDF文档

需求&#xff1a;将软件处理的结果保存为一个报告文档&#xff0c;文档中包含表格、图片、文字&#xff0c;格式为word的.doc和.pdf。生成word是为了便于用户编辑。 开发环境&#xff1a;qt4.8.4vs2010 在qt的官网上对于pdf的操作介绍如下&#xff1a;http://qt-project.org/…

路径规划 | 详解维诺图Voronoi算法(附ROS C++/Python/Matlab仿真)

目录 0 专栏介绍1 维诺图规划原理2 ROS C实现(栅格图搜索)3 Python实现(路图搜索)4 Matlab实现(路图搜索) 0 专栏介绍 &#x1f525;附C/Python/Matlab全套代码&#x1f525;课程设计、毕业设计、创新竞赛必备&#xff01;详细介绍全局规划(图搜索、采样法、智能算法等)&#…

iOS_crash文件的获取及符号化(解析)

文章目录 1. 使用 symbolicatecrash 解析 .ips 文件&#xff1a;2. 使用 CrashSymbolicator.py 解析 ips 文件3. 使用 atos 解析 crash 文件4. Helps4.1 .ips 文件获取4.2 .crash 文件获取4.3 获取 .dSYM 和 .app 文件4.4 使用 dwarfdump 查询 uuid 5. Tips6. 总结 1. 使用 sym…

迪士尼探索通过人工智能的使用来削减成本

米奇之家希望人工智能将有助于控制飙升的电视和电影制作成本。 这家华特迪士尼公司已经成立了一个特别工作组&#xff0c;调查人工智能在各个业务部门的潜在应用&#xff0c;报告路透社&#xff0c;包括削减成本和增强客户体验。尽管好莱坞正在进行作家的和演员的罢工使一些人…

Java地图专题课 基本API BMapGLLib 地图找房案例 MongoDB

本课程基于百度地图技术&#xff0c;由基础入门开始到应用实战&#xff0c;适合零基础入门学习。将企业项目中地图相关常见应用场景的落地实战&#xff0c;包括有地图找房、轻骑小程序、金运物流等。同时讲了基于Netty实现高性能的web服务&#xff0c;来处理高并发的问题。还讲…