当前位置: 首页 > news >正文

【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 extnameurl = 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.lryc.cn/news/124797.html

相关文章:

  • 每天一个知识点——L2R
  • 解决flutter showDialog下拉框,复选框等无法及时响应的问题
  • [C++ 网络协议编程] UDP协议
  • reactNative跳转appstore链接报错:Redirection to URL with a scheme that is not HTTP(S)
  • html css实现爱心
  • react中使用shouldComponentUpdate生命周期函数调用setState引起的无限循环的错误
  • 麦肯锡发布《2023科技趋势展望报告》,生成式AI、下一代软件开发成为趋势,软件测试如何贴合趋势?
  • 【爬虫】P1 对目标网站的背景调研(robot.txt,advanced_search,builtwith,whois)
  • maven如何建立JavaWeb项目并连接数据库,验证登录
  • CVPR 2023 | 用户可控的条件图像到视频生成方法(基于Diffusion)
  • 动态规划(基础)
  • 【Pytorch:nn.Embedding】简介以及使用方法:用于生成固定数量的具有指定维度的嵌入向量embedding vector
  • 动态库的命名规则
  • 【Linux】网络---->网络理论
  • Android学习之路(4) UI控件之输入框
  • 1.初识Web
  • 【微服务技术一】Eureka、Nacos、Ribbon(配置管理、注册中心、负载均衡)
  • 【Linux】可重入函数 volatile关键字 以及SIGCHLD信号
  • 【动态规划】回文串问题
  • Laravel Swift Mail发送带附件的邮件报错 “Swift_IoException The path cannot be empty“处理
  • Linux下常见的代理服务器软件介绍
  • SCSS的基本用法
  • alertmanager创建nginx-ingress basic auth鉴权
  • 系列六、Redis中的五大数据类型及相关操作
  • 四大运营商的大流量卡测评,看完您会选哪个运营商?
  • Apache-Maven
  • 什么是原子交换?
  • java springboot word文档转pdf
  • 【Leetcode Sheet】Weekly Practice 2
  • 【BERTopic应用 03/3】:微调参数