unity读取excel数据并绘制曲线

2023-11-17

一、读取数据

1.导入EPPlus类库:EPPlus.dll

2.创建script脚本

3.创建空物体,挂载脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using OfficeOpenXml;  //excel命名空间
using System.IO;

public class Test : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        string filePath = "F:/Unity Project/Curve_draw/Assets/scripts/data.xlsx";
        //获取excel文件信息
        FileInfo fileInfo = new FileInfo(filePath);
        //通过excel文件信息,打开excel表格
        using (ExcelPackage excelPackage = new ExcelPackage(fileInfo)) 
        {
            //Excel表格的操作,花括号结束完成一系列操作
            ExcelWorksheet worksheet= excelPackage.Workbook.Worksheets["Sheet1"]; //取Excel中的第一张表
            string s = worksheet.Cells[2, 1].Value.ToString();//第一行第一列信息

           // Debug.Log(s);
            for (int i = 1; i < 5; i++)
            {
                for (int j = 1; j <3; j++)
                {
                    Debug.Log(worksheet.Cells[i, j].Value.ToString());
                }
                
            }
      
        }//关闭Excel表格
    }
}

二、写入数据

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using OfficeOpenXml;
using System.IO;


public class Test : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        string filePath = "F:/Unity Project/Curve_draw/Assets/scripts/data.xlsx";

        //获取excel文件信息
        FileInfo fileInfo = new FileInfo(filePath);

        //通过excel文件信息,打开excel表格
        using (ExcelPackage excelPackage = new ExcelPackage(fileInfo)) 
        {
            //Excel表格的操作,花括号结束完成一系列操作
            ExcelWorksheet worksheet= excelPackage.Workbook.Worksheets["Sheet1"]; //取Excel中的第一张表
           
            string s = worksheet.Cells[2, 1].Value.ToString();//获取第二行第一列信息

            worksheet.Cells[5, 1].Value = "4";//往第四行,第一列写入数据
            excelPackage.Save();//保存表格

        }//关闭Excel表格
    }
}

三、创建Excel表格

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using OfficeOpenXml;
using System.IO;


public class Test : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        string filePath = "F:/Unity Project/Curve_draw/Assets/scripts/data_new.xlsx";

        //获取excel文件信息,此时文件不存在
        FileInfo fileInfo = new FileInfo(filePath);

        //通过excel文件信息,打开excel表格
        using (ExcelPackage excelPackage = new ExcelPackage(fileInfo)) 
        {
            ExcelWorksheet worksheet= excelPackage.Workbook.Worksheets.Add("Sheet1");//创建表
            excelPackage.Workbook.Worksheets.Add("Sheet2");//创建表
            excelPackage.Workbook.Worksheets.Add("Sheet3");//创建表
            excelPackage.Workbook.Worksheets.Delete("Sheet3");//删除表
            excelPackage.Save();

        }//关闭Excel表格
    }
}

四、绘制曲线

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using OfficeOpenXml;  
using System.IO;
using System.Threading;
using System;


public class Test : MonoBehaviour
{
    public LineRenderer lr;
    public float x = 0.1f;
    public float y = 0.1f;

    // Start is called before the first frame update
    void Start()
    {
        lr = GetComponent<LineRenderer>();
        lr.startWidth = 0.2f;
        lr.endWidth = 0.2f;
        lr.startColor = Color.red;
        lr.endColor = Color.red;
        string filePath = "F:/Unity Project/Curve_draw/Assets/scripts/data_xy.xlsx";

        //获取excel文件信息
        FileInfo fileInfo = new FileInfo(filePath);
        //通过excel文件信息,打开excel表格
        Vector3[] positions = new Vector3[1000]; 
        using (ExcelPackage excelPackage = new ExcelPackage(fileInfo))
        {
            //Excel表格的操作,花括号结束完成一系列操作
            ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets["Sheet1"]; //取Excel中的第一张表
            
            for (int i = 2; i < 1000; i++)
            {
                positions[i] = new Vector3(x, y,0);
                object a = worksheet.Cells[i,1].Value;
                object b = worksheet.Cells[i, 2].Value;
                x = Convert.ToInt64(a);
                y = Convert.ToInt64(b);
            }
        }//关闭Excel表格
        lr.positionCount = positions.Length;
        lr.SetPositions(positions);

    }

}

五、在UI界面绘图

未完待续

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

unity读取excel数据并绘制曲线 的相关文章

  • VBA 有没有办法了解未使用的变量?

    标准 VBA 编辑器中是否有工具 方法或设置来警告已被修改的变量Dim med 但没有被使用 MZ Tools http www mztools com index aspx将搜索您的代码并告诉您哪些内容未被使用 VBA的版本可以找到her
  • VBA 完成 Internet 表单

    我正在寻找将 Excel 中的值放入网页的代码 Sub FillInternetForm Dim IE As Object Set IE CreateObject InternetExplorer Application IE naviga
  • 将包含宏的工作簿复制到不带宏的工作簿

    我能够复制工作簿 复制到所需位置 其中在后台包含宏 该副本还包含相同的宏 我的问题是我不希望这个重复的工作簿包含宏 谁能告诉怎么做吗 先感谢您 将您的工作簿保存为无宏 即简单地保存为 Excel 工作簿 对于我的 Excel 2007 这是
  • 如何等到 Excel 计算公式后再继续 win32com

    我有一个 win32com Python 脚本 它将多个 Excel 文件合并到电子表格中并将其另存为 PDF 现在的工作原理是输出几乎都是 NAME 因为文件是在计算 Excel 文件内容之前输出的 这可能需要一分钟 如何强制工作簿计算值
  • 两个日期之间的小时数在 Excel 中不起作用

    根据要求 我提供了一张简化的屏幕截图来说明该问题 如您所见 我减去了两个日期并将其格式化为 h mm ss 为什么这不能提供两个日期之间经过的总小时数 有一个更好的方法吗 下面有一个很好的答案 但我试图弄清楚为什么按照此屏幕截图中所示的方式
  • 我如何以更好的方式编码而不是像这样的VBA编码

    我正在 Excel 中创建一个仪表板 但是我想知道是否有比这更好的编码方式 我想对其进行模块化 而不是这样做以使其更加整洁 Private Sub Afford If af Value True Then af afr Value Shee
  • 有没有更快的方法来使用Powershell解析Excel文档?

    我正在与一个接口MS Excel文件通过Powershell 每个 Excel 文档可能有大约 1000 行数据 目前这个脚本似乎读取了Excel文件并以每 0 6 秒 1 条记录的速率将值写入屏幕 乍一看 这似乎非常慢 这是我第一次阅读E
  • 将 MS 转换为秒

    我发现这个公式可以用来将 MS 转换为秒 但它是为 Excel 2002 编写的 而我正在使用 2010 CONCATENATE TEXT INT B1 1000 86400 hh mm ss B1 INT B1 1000 1000 以下是
  • Vlookup 引用不同工作表中的表数据

    我想用一个VLOOKUP函数引用了放置在与所在工作表不同的工作表中的数据表VLOOKUP书面的功能 示例 在工作表 1 的单元格 AA3 中 我想插入VLOOKUP功能 我希望该函数检查单元格 M3 中的数字 在工作表 2 范围地址 A2
  • Excel 接受一些字符,而 OpenXml 有错误

    我有一个字符串 我想使用 C 中的 openxml 组件将其导出到 Excel 文件 我的文本有 u001f 字符 而 openxml 对此字符有错误 错误文本 十六进制值 0x1f 是无效字符 我将该测试直接复制到 Excel 中 没有问
  • 使用宏从 Excel 电子表格中删除任何非指定字符

    我正在尝试通过删除任何非标准字符来清理 Excel 中的 CSV 文件 我唯一关心保留的字符是 A Z 0 9 和一些标准标点符号 任何其他字符 我想删除 当它找到包含我未指定的任何字符的单元格时 我已经得到了以下宏来删除整行 但我不确定如
  • 删除 VBA 按钮集合

    我正在使用以下脚本在 Excel 中生成按钮 范围正是我希望放置它的位置 Sub CreateAddButton rng As Range Dim btn As Button With Worksheets User Set btn But
  • 从Excel单元格中提取固定长度的数字

    一些类似名称的线程 但仍然无法解决我的问题 我需要从 Excel 字符串中提取固定长度的 NUMBER 值 在我的场景中为 8 位数字 为此目的提供了以下 Excel 公式 MID A1 FIND SUBSTITUTE SUBSTITUTE
  • 将数据从 R 导出到 Excel

    我试图将从 R 获得的一些结果导出到 Excel 中 但未成功 我尝试过以下代码 write table ALBERTA1 D ALBERTA1 txt sep t write csv ALBERTA1 ALBERTA1 csv your
  • Excel VSTO 工作簿新活动

    在 Excel 2007 的一个 Excel 插件项目中 我需要检查创建新工作簿的事件 我还需要捕捉 Workbook Open 事件 我很容易做到这一点 在我在互联网上的研究中 我发现了以下内容 打开任何工作簿时都会引发 Applicat
  • VBA将二进制图像转换为网页的base64编码字符串

    我正在尝试读取 JPG 文件并将该文件转换为 base64 编码的字符串 该字符串可用作网页上的嵌入 jpeg 我在网上发现了两个在 VBA 中进行 Base64 编码 解码的函数 它们似乎被广泛接受 编码 解码过程产生了我的原始二进制字符
  • 如何从shiny中将数据下载到多张纸上?

    我们如何将数据从 Shiny 下载到多个工作表并命名每个工作表 例如下面 ginberg将mtcars数据保存在sheet1中 我们可以将头部 mtcars 保存在sheet2中吗 另外 我们可以对这些工作表进行不同的命名吗 例如sheet
  • 如何将动态范围字符串文本传递给 EXCEL VBA 中的 SQL 查询 IN 子句

    我有动态范围字符串数据 需要通过修剪单元格和单引号和逗号分隔到 SQL 查询 A 123ABC345 234CDE678 ZSE123MTR POR123456 Result select from table name where col
  • 如何解锁和锁定 Excel 单元格以运行宏

    我有一个电子表格 有两个按钮 从数据库检索记录 另一个按钮用于将更改从 Excel 上传到数据库 从数据库检索记录的宏如下 现在 在检索记录后 我希望用户仅编辑某些列 此处为从一月到场景的列 以便用户在更新这些单元格后可以单击更新按钮将更改
  • 使用vba更改工作表的代号

    此代码在 VBE 窗口打开时工作正常 但会引发错误Subscript out of range在这一行 wB VBProject VBComponents wS CodeName Properties CodeName Value wsDa

随机推荐

  • PT100所谓的二线制,三线制,四线制如何接线(详解)

    PT100所谓的二线制 三线制 四线制如何接线 铂热电阻是利用铂丝的电阻值随着温度的变化而变化的 那么铂热电阻的三种接线方法以及消除误差的原理是怎么样的呢 二线制 二线制 在热电阻的两端各连接一根导线来引出电阻信号的方式叫二线制 这种引线方
  • PyOpenGL帧缓存

    安装 python m pip install PyOpenGL PyOpenGL accelerate i http mirrors aliyun com pypi simple trusted host mirrors aliyun c
  • java-使用newTaskFor封装任务中非标准取消

    1 使用newTaskFor钩子函数来改进用来封装非标准取消的方法 这是ThreadPoolExecutor的新特性 2 当提交一个callable给ExecutorService时 submit返回一个Future 可以用Future来取
  • 【Python开发】Python中数据分析环境的搭建

    注 无论是任何一门语言 刚开始入门的时候 语言运行环境的搭建都是一件不轻松的事情 Python的运行环境 要运行或写Python代码 就需要Python的运行环境 主要的Python有以下三类 原生态的Python 就是直接从Python的
  • KVM管理平台选型与开源企业级虚拟化平台oVirt详解

    一 KVM管理平台 虚拟化和云计算以在当今IT工业中的用途和优势 成为近年来的技术热点之一 其发展非常迅速 搞KVM虚拟化的时候 面临的一个很重要的问题是 管理平台如何搞定 目前 已经出现了很多与KVM相关的管理工具和云计算平台 比较知名和
  • go memcpy

    来源 https github com jsgilmore shm callback syscall NewCallback func r uintptr size int ret uintptr 定义一个 byte切片 用来存储C返回的字
  • 代码随想录算法训练营第二天

    1 双指针法 leetcode 题977 给你一个按 非递减顺序 排序的整数数组 nums 返回 每个数字的平方 组成的新数组 要求也按 非递减顺序 排序 1 1 暴力解法 先求出数组所有值的平方 然后再排序 1 2 双指针法 i指向初始位
  • MySQL中时间函数(史上最全的时间函数)

    一 MySQL 获得当前日期时间 函数 获得当前日期 时间 date time 函数 now mysql gt select now now 2019 08 19 10 23 46 除了 now 函数能获得当前的日期时间外 MySQL 中还
  • Spring Data Elasticsearch篇(3):ElasticsearchRepository文档操作

    1 ElasticsearchRepository 1 1 ElasticsearchRepository源码 NoRepositoryBean public interface ElasticsearchRepository
  • matplotlib画折线图

    matplotlib画折线图 假设一天中每隔两个小时 range 2 26 2 的气温 分别是 15 13 14 5 17 20 25 26 26 27 22 18 15 代码如下 导入pyplot from matplotlib impo
  • HDU--1861:游船出租

    1 题目源地址 http acm hdu edu cn showproblem php pid 1861 2 源代码 HOJ 1861 游船出租 include
  • Unity3D研究院之游戏开发中的人工智能AI

    人工智能这个东西在游戏中是非常重要的 人工智能说简单了就是根据随机的数字让敌人执行一些动作或逻辑 说难了TA需要一个非常复杂的算法 本文我主要说说Unity3D中人工智能的脚本如何来编写 首先你应该搞清楚的一点AI脚本属于一个工具类脚本 工
  • 数据结构之栈

    文章目录 栈的概念 栈的功能实现 栈结构的实现 栈的初始化 栈的判空 读取栈顶数据 插入数据 删除数据 栈中数据个数 栈的销毁 总结 Stack h文件 Stack c文件 栈的概念 栈 一种特殊的线性表 其只允许在固定的一端进行插入和删除
  • 带你了解锂电池保护板的工作原理

    拆过手机或者平板的用户 应该都注意过 在手机或者平板的锂电池部分 其上端有一块质地较软且被塑料膜包裹起来的电路板 电池大小不同 电路板尺寸也不一样 揭开塑料膜 你会发现 其上布置了很多的元器件 或许会有人问 这块板子究竟有何作用 其实呢 电
  • 数据结构C++实现——线性表之链表(单链表)

    线性表分为顺序表与链表 其中链表分为单链表 双链表 循环链表 这三个为指针实现 与静态链表 数组实现 指针实现的链表可以分为带头结点与不带头结点两种 其基本操作有插入 删除 按位查找 按值查找等 单链表 不带头结点 单链表 不带头结点 用链
  • 软件工程第五章习题

    软件工程第五章习题 1 为每种类型的模块耦合举一个具体例子 2 为每种类型的模块内聚举一个具体例子 1 为每种类型的模块耦合举一个具体例子 只需要答出什么模块和例子即可 一共5个 数控特环内 数据耦合 两个模块之间通过参数交换信息 信息仅为
  • 自动化运维管理工具 Ansible

    自动化运维管理工具 Ansible 一 Ansible介绍 Ansible是一个基于 Python开发 的配置管理和应用部署工具 现在也在自动化管理领域大放异彩 它融合了众多老牌运维工具的优点 Pubbet和Saltstack能实现的功能
  • Altium Designer侧边栏分上下或者左右两栏,并恢复

    如何分上下或左右 拖动的时候 鼠标移动到上面红框内 即可有提示 松开即完成 如何恢复 按住Shift 并鼠标拖动
  • Pytorch显存动态分配规律探索

    下面通过实验来探索Pytorch分配显存的方式 实验 显存到主存 我使用VSCode的jupyter来进行实验 首先只导入pytorch 代码如下 import torch 打开任务管理器查看主存与显存情况 情况分别如下 在显存中创建1GB
  • unity读取excel数据并绘制曲线

    一 读取数据 1 导入EPPlus类库 EPPlus dll 2 创建script脚本 3 创建空物体 挂载脚本 using System Collections using System Collections Generic using