【Unity数据交互】如何Unity中读取Ecxel中的数据

news2024/11/28 6:40:04

在这里插入图片描述


👨‍💻个人主页:@元宇宙-秩沅

👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍💻 本文由 秩沅 原创

👨‍💻 专栏交流🧧
🟥Unity100个实战基础✨🎁
🟦 Unity100个精华一记✨🎁
🟩 Unity50个demo案例教程✨🎁
🟨 Unity100个精华细节BUG✨🎁

在这里插入图片描述

在这里插入图片描述


文章目录

    • 前言
    • 🎶Unity中使用Ecxel
      • Excel的使用基础
      • Excel的实践
      • 编写脚本ExcelTool(读取Excel数据生成数据结构、容器、二进制文件)
    • 🅰️系统路线学习点击跳转


前言


🎶Unity中使用Ecxel


  • 导入官方提供的Excel相关DLL文件,在Editor文件夹下
    在这里插入图片描述

Excel的使用基础

  • 1.打开Excel表

主要知识点:
1.FileStream读取文件流
2.IExcelDataReader类,从流中读取Excel数据
3.DataSet 数据集合类 将Excel数据转存进其中方便读取

 [MenuItem("GameTool/打开Excel表")]
 private static void OpenExcel()
 {
     using (FileStream fs = File.Open(Application.dataPath + "/文件夹/Excel表明.xlsx", FileMode.Open, FileAccess.Read ))
     {
         //通过我们的文件流获取Excel数据
         IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(fs);
         //将excel表中的数据转换为DataSet数据类型 方便我们 获取其中的内容
         DataSet result = excelReader.AsDataSet();
         //得到Excel文件中的所有表信息
         for (int i = 0; i < result.Tables.Count; i++)
         {
             Debug.Log("表名:" + result.Tables[i].TableName);
             Debug.Log("行数:" + result.Tables[i].Rows.Count);
             Debug.Log("列数:" + result.Tables[i].Columns.Count);
         }
         fs.Close();
     }
 }
  • 2.获取Excel表中单元格的信息

主要知识点:
1.FileStream读取文件流
2.IExcelDataReader类,从流中读取Excel数据
3.DataSet 数据集合类 将Excel数据转存进其中方便读取
4.DataTable 数据表类 表示Excel文件中的一个表
5.DataRow 数据行类 表示某张表中的一行数据

[MenuItem("GameTool/读取Excel里的具体信息")]
 private static void ReadExcel()
 {
     using (FileStream fs = File.Open(Application.dataPath + "/文件夹/Excel表明.xlsx", FileMode.Open, FileAccess.Read))
     {
         IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(fs);
         DataSet result = excelReader.AsDataSet();
         for (int i = 0; i < result.Tables.Count; i++)
         {
             //得到其中一张表的具体数据
             DataTable table = result.Tables[i];
             //得到其中一行的数据
             //DataRow row = table.Rows[0];
             //得到行中某一列的信息
             //Debug.Log(row[1].ToString());
             DataRow row;
             for (int j = 0; j < table.Rows.Count; j++)
             {
                 //得到每一行的信息
                 row = table.Rows[j];
                 Debug.Log("*********新的一行************");
                 for (int k = 0; k < table.Columns.Count; k++)
                 {
                     Debug.Log(row[k].ToString());
                 }
             }
         }
         fs.Close();
     }
 }

我们可以根据表中数据来动态的生成相关数据
1.数据结构类
2.容器类
3.二进制数据
作用:

1.提升读取效率
2.提升数据安全性

Excel的实践

  • 1.自定义Excel表的规则
    第一行:字段
    第二行:数据类型
    第三行:主键
    第四行:注释
    之后:数据
    (可用字典的形式存储<key,数据容器>)
    在这里插入图片描述
  • 我们想通过Ecxel表中的内容生成数据结构,生成容器脚本,如何实现呢
    见下文

编写脚本ExcelTool(读取Excel数据生成数据结构、容器、二进制文件)

————————后续内容私信交流——————————————

在这里插入图片描述

🅰️系统路线学习点击跳转


👨‍💻 Unity程序基础学习路线🧧
⭐【Unityc#专题篇】之c#进阶篇】🎁
⭐【Unityc#专题篇】之c#核心篇】🎁
⭐【Unityc#专题篇】之c#基础篇】🎁
⭐【Unity-c#专题篇】之c#入门篇】🎁
【Unityc#专题篇】—进阶章题单实践练习🎁
⭐【Unityc#专题篇】—基础章题单实践练习🎁
【Unityc#专题篇】—核心章题单实践练习🎁

你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!


在这里插入图片描述


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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

picgo+gitee图床配置

node.js安装 刚开始顺着picgo操作,直接跳转到了node.js官网 下载的时候直接 Next,然后可以自定义安装路径,我的安装路径是C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Node.js 然后再在安装路径的根目录下新建两个文件夹,nodecache 和 nodeglobal, 如图所示:…

ida动态调试-cnblog

ida动态调试 传递启动ida服务 android_server在ida\dbgsrv目录中 adb push android_server /data/local/tmp/chmod 755 /data/local/tmp/android_server /data/local/tmp/android_serveradb forward tcp:23946 tcp:23946ida报错:大多是手机端口被占用 报错提示&#xff1a; …

GD32 MCU ADC采样率如何计算?

大家在使用ADC采样的时候是否计算过ADC的采样率&#xff0c;这个问题非常关键&#xff01; 以下为GD32F303系列MCU中有关ADC的参数&#xff0c;其中ADC时钟最大值为40MHz&#xff0c;12位分辨率下最大采样率为2.86MSPS.如果ADC时钟超频的话&#xff0c;可能会造成ADC采样异常&…

ARTS Week 36

unsetunsetAlgorithmunsetunset 本周的算法题为 1528. 重新排列字符串 给你一个字符串 s 和一个 长度相同 的整数数组 indices 。 请你重新排列字符串 s &#xff0c;其中第 i 个字符需要移动到 indices[i] 指示的位置。 返回重新排列后的字符串。 img 示例 1&#xff1a;输入&…

Google RichHF-18K 文本到图像生成中的丰富人类反馈

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

使用python编程的视频文件列表应用程序

简介&#xff1a; 在本篇博客中&#xff0c;我们将介绍一个基于 wxPython 的视频文件列表应用程序。该应用程序允许用户选择一个文件夹&#xff0c;并显示该文件夹中的视频文件列表。用户可以选择文件并查看其详细信息&#xff0c;导出文件列表为文本文件&#xff0c;以及播放…

Python酷库之旅-第三方库Pandas(008)

目录 一、用法精讲 16、pandas.DataFrame.to_json函数 16-1、语法 16-2、参数 16-3、功能 16-4、返回值 16-5、说明 16-6、用法 16-6-1、数据准备 16-6-2、代码示例 16-6-3、结果输出 17、pandas.read_html函数 17-1、语法 17-2、参数 17-3、功能 17-4、返回值…

68.WEB渗透测试-信息收集- WAF、框架组件识别(8)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;67.WEB渗透测试-信息收集- WAF、框架组件识别&#xff08;7&#xff09; 右边这些是waf的…

C++ | Leetcode C++题解之第217题存在重复元素

题目&#xff1a; 题解&#xff1a; class Solution { public:bool containsDuplicate(vector<int>& nums) {unordered_set<int> s;for (int x: nums) {if (s.find(x) ! s.end()) {return true;}s.insert(x);}return false;} };

R语言fastshap包进行支持向量机shap可视化分析

1995年VAPINK 等人在统计学习理论的基础上提出了一种模式识别的新方法—支持向量机 。它根据有限的样本信息在模型的复杂性和学习能力之间寻求一种最佳折衷。 以期获得最好的泛化能力.支持向量机的理论基础决定了它最终求得的是全局最优值而不是局部极小值,从而也保证了它对未知…

揭秘Conda:Python开发者必备的包管理神器

conda 简介 Conda 是一个开源的包管理系统和环境管理系统&#xff0c;用于安装和管理软件包以及创建和维护不同的软件环境。 它最初是为 Python 语言设计的&#xff0c;但现在已经支持多种编程语言&#xff0c;包括 R、Ruby、Lua、Scala 等。 1、Anaconda&#xff1a;是一个…

041基于SSM+Jsp的高校校园点餐系统

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…

在pycharm中使用jupyter

在pycharm中使用jupyter 前置条件&#xff1a;你的环境中应该有juptyer &#xff0c;没有的话 pip install jupyter 点击项目目录&#xff0c;右键->new->jupyter notebook 打开file settings 找到 jupyter server &#xff08;按照默认的用代理服务器就行&#xff09; P…

整洁架构SOLID-单一职责原则(SRP)

文章目录 定义案例分析重复的假象代码合并解决方案 小结 定义 SRP是SOLID五大设计原则中最容易被误解的一个。也许是名字的原因&#xff0c;很多程序员根据SRP这个名字想当然地认为这个原则就是指&#xff1a;每个模块都应该只做一件事。 在历史上&#xff0c;我们曾经这样描…

全网最适合入门的面向对象编程教程:10 类和对象的Python实现-类的继承和里氏替换原则,Python模拟主机和传感器自定义类

全网最适合入门的面向对象编程教程&#xff1a;10 类和对象的 Python 实现-类的继承和里氏替换原则&#xff0c;Python 模拟主机和传感器自定义类 摘要&#xff1a; 本文主要介绍了类的继承的基本概念和里氏替换原则&#xff0c;以模拟传感器数据串口输出-上位机串口接收为例…

Python结合MobileNetV2:图像识别分类系统实战

一、目录 算法模型介绍模型使用训练模型评估项目扩展 二、算法模型介绍 图像识别是计算机视觉领域的重要研究方向&#xff0c;它在人脸识别、物体检测、图像分类等领域有着广泛的应用。随着移动设备的普及和计算资源的限制&#xff0c;设计高效的图像识别算法变得尤为重要。…

【反悔贪心 反悔堆】1642. 可以到达的最远建筑

本文涉及知识点 反悔贪心 反悔堆 LeetCode1642. 可以到达的最远建筑 给你一个整数数组 heights &#xff0c;表示建筑物的高度。另有一些砖块 bricks 和梯子 ladders 。 你从建筑物 0 开始旅程&#xff0c;不断向后面的建筑物移动&#xff0c;期间可能会用到砖块或梯子。 当…

AJAX-个人版-思路步骤整理版

前置知识&#xff1a;老式的web创建工程方法就是创建项目然后添加web工件&#xff0c;然后添加lib依赖如&#xff1a;tomcat,servlet&#xff0c;等。 传统请求 对于传统请求操作&#xff1a;整体流程也就是创建静态页面&#xff0c; <!DOCTYPE html> <html lang&q…

秋招突击——7/6——复习{前K个高频元素}——新作{数据流的中位数、有效括号、最小栈、字符串解码}

文章目录 引言复习前K个高频元素——使用堆去做个人实现参考官方——使用堆实现定义优先队列的基本方式 新作数据流的中位数个人实现参考做法 有效括号个人实现参考实现 最小栈个人实现参考实现 字符串解码个人实现参考实现 总结 引言 差不多摆烂了一上午&#xff0c;本来今天…

摸鱼大数据——Spark SQL——基本介绍和入门案例

Spark SQL 基本介绍 1、什么是Spark SQL Spark SQL是Spark多种组件中其中一个&#xff0c;主要是用于处理大规模的【结构化数据】 什么是结构化数据: 一份数据, 每一行都有固定的列, 每一列的类型都是一致的 我们将这样的数据称为结构化的数据例如: mysql的表数据1 张三 202 …