【插件】【干货】用EPPlus在Unity中读写Excel表

news2024/9/23 3:14:01

EPPlus是什么我就不说了,你都点进来了肯定知道

几个常用的api

1.index下标都是从1开始的

2.可以读取任意单元格上的任意内容,不需要给excel表写规则

但是如果你写了规则,就需要自己用额外的代码 --- 数据结构去实现

3.打开excel表 ExcelPackage package = new ExcelPackage(需要打开的excel文件)

4.  获取工作表  ExcelWorksheet sheet = package.Workbook.Worksheets[index];

5.获取工作表的行数和列数   sheet.Dimension.End.Row;     sheet.Dimension.End.Column;

6.将数据写入表 sheet.Cells[Row, Column].Value =value ;

7.从集合加载数据到工作表

 var data = new List<Person> { new Person { Name = "Alice", Age = 30 } };
 sheet.Cells["A1"].LoadFromCollection(data, true);

8.从文本文件中加载数据

sheet.Cells["A1"].LoadFromText("Name, Age\nAlice, 30\nBob, 25");

9.保存表 package.Save();

导入

EPPlusSoftware/EPPlus: EPPlus-Excel spreadsheets for .NET (github.com)

Excel表

读表例子

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

public class Read : MonoBehaviour
{
    // Unity的Start方法,在游戏开始时调用
    void Start() {
        ReadExcel(); // 调用读取Excel文件的方法
    }
    
    // 读取Excel文件的方法
    void ReadExcel() {
        // 获取Excel文件的路径
        string path = Application.dataPath + "/Excel/Text.xlsx";
        FileInfo fileInfo = new FileInfo(path); // 创建FileInfo对象

        // 使用EPPlus库打开Excel文件
        using (ExcelPackage package = new ExcelPackage(fileInfo)) {
            // 获取第一个工作表
            ExcelWorksheet sheet = package.Workbook.Worksheets[1];
            // 获取工作表的行数和列数
            int rowCount = sheet.Dimension.End.Row;
            int colCount = sheet.Dimension.End.Column;

            // 遍历工作表的每一行和每一列
            for (int row = 1; row <= rowCount; row++) // 从第二行开始,跳过标题行
            {
                for (int col = 1; col <= colCount; col++) {
                    // 如果单元格不为空,打印其内容
                    if (sheet.Cells[row, col].Value != null) {
                        Debug.Log(sheet.Cells[row, col].Value.ToString());
                    }
                }
                
            }
        }
    }
}

写表例子

using System.IO; // 引入系统IO命名空间,用于文件操作
using UnityEngine; // 引入Unity引擎命名空间
using OfficeOpenXml; // 引入EPPlus命名空间,用于操作Excel文件

public class ExcelHandler : MonoBehaviour
{
    void Start()
    {
        
        WriteExcel();
    }

    void WriteExcel()
    {
        string path = Application.dataPath + "/Excel/Text.xlsx";
        FileInfo fileInfo = new FileInfo(path);

        using (ExcelPackage package = new ExcelPackage(fileInfo))
        {
            ExcelWorksheet sheet = package.Workbook.Worksheets.Count == 0 ? package.Workbook.Worksheets.Add("Sheet1") : package.Workbook.Worksheets[0];

            sheet.Cells[1, 1].Value = "ID";
            sheet.Cells[1, 2].Value = "Name";
            sheet.Cells[1, 3].Value = "Age";

            sheet.Cells[2, 1].Value = 1;
            sheet.Cells[2, 2].Value = "Alice";
            sheet.Cells[2, 3].Value = 30;

            sheet.Cells[3, 1].Value = 2;
            sheet.Cells[3, 2].Value = "Bob";
            sheet.Cells[3, 3].Value = 25;

            package.Save();
        }

        Debug.Log("Excel文件写入完成!");
    }
}

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

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

相关文章

[数据集][目标检测]智慧交通铁路异物入侵检测数据集VOC+YOLO格式802张7类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;802 标注数量(xml文件个数)&#xff1a;802 标注数量(txt文件个数)&#xff1a;802 标注类别…

萤石举办2024清洁机器人新品发布会 多维智能再造行业标杆

导言&#xff1a;作为智慧生活守护者&#xff0c;萤石今日发布了两款清洁机器人&#xff0c;AI扫拖机器人RS20 Pro Ultra 和AI洗地机器人RX30 Max &#xff0c;标志着萤石在智能清洁领域的全新突破。RS20 Pro Ultra基于CutFree 2.0内切割滚刷专利&#xff0c;有效解决毛发缠绕难…

速通GPT:《Improving Language Understanding by Generative Pre-Training》全文解读

文章目录 速通GPT系列几个重要概念1、微调的具体做法2、任务感知输入变换3、判别式训练模型 Abstract概括分析和观点1. 自然语言理解中的数据问题2. 生成预训练和监督微调的结合3. 任务感知输入变换4. 模型的强大性能 Introduction概括分析和观点1. 自然语言理解的挑战在于对标…

探索Python的HTML处理神器:pyquery的魔力

文章目录 探索Python的HTML处理神器&#xff1a;pyquery的魔力背景&#xff1a;为何选择pyquery&#xff1f;pyquery是什么&#xff1f;安装pyquery五个简单的库函数使用方法1. $&#xff1a;选择元素2. .text()&#xff1a;获取文本内容3. .html()&#xff1a;获取HTML内容4. …

SSM框架学习(三、MyBatis实践:提高持久层数据处理效率)

目录 一、Mybatis简介 1.简介 2.持久层框架对比 3.快速入门&#xff08;基于Mybatis3方式&#xff09; 4.ibatis方式的实现和原理 5.ibatis与mybatis之间的关系 二、Mybatis基本使用 1.向 sql 语句传参 &#xff08;1&#xff09;mybatis日志输出配置 &#xff08;2&…

小程序开发设计-第一个小程序:创建小程序项目④

上一篇文章导航&#xff1a; 小程序开发设计-第一个小程序&#xff1a;安装开发者工具③-CSDN博客https://blog.csdn.net/qq_60872637/article/details/142219152?spm1001.2014.3001.5501 须知&#xff1a;注&#xff1a;不同版本选项有所不同&#xff0c;并无大碍。 一、创…

主播和礼品检测系统源码分享

主播和礼品检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer V…

SSH软链接后门从入门到应急响应

目录 1. 软链接与SSH软链接后门介绍 1.1 软链接介绍 1.2 SSH软连接后门介绍 2. 如何在已拿下控制权限的主机创建后门 2.1 使用root账户并执行ssh软链接后门命令&#xff1a; 2.2 连接软链接后门测试&#xff1a; 2.3 创建其它账户 ssh软连接后门命令 3. 如何进行应急…

笋丁网页自动回复机器人V3.0.0免授权版源码

笋丁网页机器人一款可设置自动回复&#xff0c;默认消息&#xff0c;调用自定义api接口的网页机器人。 此程序后端语言使用Golang&#xff0c;内存占用最高不超过30MB&#xff0c;1H1G服务器流畅运行。仅支持Linux服务器部署&#xff0c;不支持虚拟主机&#xff0c;请悉知&…

七. 部署YOLOv8检测器-quantization-analysis

目录 前言0. 简述1. 案例运行2. 补充说明3. 量化分析4. 探讨总结下载链接参考 前言 自动驾驶之心推出的 《CUDA与TensorRT部署实战课程》&#xff0c;链接。记录下个人学习笔记&#xff0c;仅供自己参考 本次课程我们来学习课程第七章—部署YOLOv8检测器&#xff0c;一起来学习…

无限边界:现代整合安全如何保护云

尽管云计算和远程工作得到广泛采用&#xff0c;零信任网络也稳步推广&#xff0c;但边界远未消失。相反&#xff0c;它已被重新定义。就像数学分形的边界一样&#xff0c;现代网络边界现在无限延伸到任何地方。 不幸的是&#xff0c;传统工具在现代无限边界中效果不佳。现代边…

优化算法(三)—模拟退火算法(附MATLAB程序)

模拟退火算法&#xff08;Simulated Annealing, SA&#xff09;是一种基于概率的优化算法&#xff0c;旨在寻找全局最优解。该算法模拟金属退火过程中的物质冷却过程&#xff0c;逐渐降低系统的“温度”以达到全局优化的效果。它特别适用于解决复杂的组合优化问题。 一、模拟退…

深度学习笔记(6)文本分类

深度学习笔记&#xff08;6&#xff09;文本分类 文章目录 深度学习笔记&#xff08;6&#xff09;文本分类一、文本分析与关键词提取1.关键概念1.停用词2 Tf-idf&#xff1a;关键词提取 3.相似度 二、文本分析案例1.数据处理2.分词&#xff1a;实用结巴分词器3.清洗4.TF-IDF5.…

FastText 和 Faiss 的初探了解

概览 大模型目前已经是如火如荼的程度&#xff0c;各个大厂都有推出面向大众的基础大模型&#xff0c;同时诸多行业也有在训练专有大模型&#xff0c;而大模型的发展由来却是经过多年从文本检索生成、深度学习、自然语言处理&#xff0c;在Transformer架构出来后&#xff0c;才…

win11下面graphviz的用法

安装 安装graphviz 2.38版本 控制面板在变量path中增加E:\software\Graphviz\bin example.dot代码 digraph SignalPathway {node [fontname"SimHei"];edge [fontname"SimHei"];// 定义节点形状node [shapecircle];// 定义节点CellA [label"细胞 A&…

第 13 章 兵马未动,粮草先行——InnoDB 统计数据是如何收集的

表的统计数据&#xff1a;SHOW TABLE STATUS LIKE table_name; 索引的统计数据&#xff1a;SHOW INDEX FROM table_name; 13.1 两种不同的统计数据存储方式 InnoDB 提供了两种存储统计数据的方式&#xff1a; 永久性的统计数据。存储在磁盘上&#xff0c;服务器重启之后还在…

nvm安装并配置全局缓存文件

nvm下载&#xff0c;最新版为 1.1.12&#xff1a;Releases coreybutler/nvm-windows GitHub 下载exe&#xff0c;选择指定位置安装即可&#xff0c;安装及配置参考链接&#xff1a;window下安装并使用nvm&#xff08;含卸载node、卸载nvm、全局安装npm&#xff09;-CSDN博客 …

SpringBoot教程(安装篇) | RabbitMQ的安装

SpringBoot教程&#xff08;安装篇&#xff09; | RabbitMQ的安装 一、下载RabbitMQ&#xff08;windows版本&#xff09;1. 先下载 RabbitMQ2. 再下载Erlang3. 开始安装 Erlang4. 为Erlang配置环境变量5、验证安装6. 开始安装 RabbitMQ7. 启用RabbitMQ的管理插件&#xff08;图…

学习整理vue前端框架项目目录结构的含义

学习整理vue前端框架项目目录结构的含义 1、目录结构2、结构含义 1、目录结构 2、结构含义

C++STL~~deque

文章目录 deque的概念deque的使用deque的练习总结 deque的概念 deque(双端队列)&#xff1a;是一种序列容器、是一种双开口的"连续"空间的数据结构&#xff0c;双开口的含义是&#xff1a;可以在头尾两端进行插入和删除操作&#xff0c;且时间复杂度为O(1)&#xff…