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

Unity读取、新建Excel表格

把dll资源解压后,全部导入到unity中的Plugins文件下面
资源放在标题下方,可以自行下载
使用教程


引入命名空间 using SimpleExcel;。这个命名空间下主要有两个类:WorkBook和Sheet。WorkBook用于对整个excel文件的操作,如创建、打开、保存,Sheet用于对工作表的操作,如在特定单元格中添加、修改数据,从数据源中批量导入等。可以参考以下的代码示例:
新建工作簿和工作表:var workbook = new WorkBook();
var sheet = workbook.NewSheet("sheet1");
读取工作簿和工作表:// 根据路径读取工作簿
var workbook = var workbook = new WorkBook(@"F:\projects\Repos\Panda.SimpleExcel\Test\bin\Debug\test.xlsx");// 根据索引读取工作表
var sheet1 = workbook.GetSheet(0);// 根据名称读取工作表
var sheet2 = workbook.GetSheet("Sheet2");
直接给单元格赋值:(单元格用Sheet.Rows[rowIndex][columnIndex]获取,并使用Value属性获取或修改它的内容)sheet1.Rows[0][0].Value = "Hello";
Sheet类提供了直接从IEnumerable转换数据的功能。默认情况下,它会将类型T的所有字段名作为表头,将集合中的所有对象排列出来。例如,我们先创建一个类:public class Person
{public string Name { get; set; }public string Sex { get; set; }public int Age { get; set; }
}
然后使用Sheet.ConvertFromQuery<T>将集合直接添加到工作表中var list = new List<Person>();
for(int i = 0; i < 10; i++)
{var person = new Person(){Name = "测试" + i,Sex = i % 2 == 0 ? "男" : "女",Age = i};list.Add(person);
}
//将List对象添加到工作表中,第一个参数是集合对象,第二个参数是起始行数,默认为0
sheet1.ConvertFromQuery(list, 1);
同样,也可以直接使用linq语句将查询结果添加到工作表//将linq语句转换成工作表数据
var p = from a in list where a.Sex == "男" select a;
sheet2.ConvertFromQuery(p);
保存工作簿:workbook.Save(@"D:\projects\test.xls");
样式控制:可以通过特性来控制工作表的样式。使用Row特性可以控制行样式,使用Column特性可以控制列样式。[Row(EvenRowColor = ExcelColor.Aqua,OddRowColor = ExcelColor.CornflowerBule,HeaderBackColor = ExcelColor.Maroon,HeaderFontColor = ExcelColor.White,HeaderHeight = 20,HeaderHorAlign = HorizontalAlign.Center,HeaderVerAlign = VerticalAlign.Center)]
public class Person
{[Column(BackColor = ExcelColor.Brown, FontColor = ExcelColor.White, FontSize = 14,FontFamily = "黑体",HorAlign = HorizontalAlign.Center,VerAlign = VerticalAlign.Center,Name = "姓名")]public string Name { get; set; }[Column(FontColor = ExcelColor.Red,HorAlign = HorizontalAlign.Left,VerAlign = VerticalAlign.Center,Name = "性别")]public string Sex { get; set; }public int Age { get; set; }
}

项目中运用示例,,读去一个思考题的excel,下图是表格格式
在这里插入图片描述

 public void GetQuestion(string name, Question  game){#region  直接读取Excel 添加思考题Question question = game ;//获取到excel表var workbook = new WorkBook(Application.dataPath + "/Excel/思考题/" + name + ".xlsx");var sheet1 = workbook.GetSheet(0);//获取第一个工作表question.minNum = 1;//注:例如:表格中有4行数据,长度LastRowNum则是3,0是第一行,1是第二行,2是第三行,3是第四行//此处-1是因为思考题表格中第一行和第二行是提示,从第三行才是思考题。如当有四行数据时,思考题只有两道,但是Rows.LastRowNum=3,所以-1,等于2question.maxNum = sheet1.Rows.LastRowNum - 1;question.questionCount = sheet1.Rows.LastRowNum - 1;question.datas = new Question.QuestionItemData[sheet1.Rows.LastRowNum - 1];for (int i = 0; i < question.datas.Length; i++){int t = i + 2;//此处+2 是因为要从表格的第三行开始读取表格数据question.datas[i].question = sheet1.Rows[t][0].Value;question.datas[i].answer = sheet1.Rows[t][1].Value; ;question.datas[i].selects = sheet1.Rows[t][2].Value.Split('|');question.datas[i].resultRight = sheet1.Rows[t][3].Value;question.datas[i].resultWrong = sheet1.Rows[t][4].Value;question.datas[i].sprite = Resources.Load<Sprite>("思考题图片/" + sheet1.Rows[t][5].Value);question.datas[i].point = sheet1.Rows[][6].Value;if (string.IsNullOrEmpty(sheet1.Rows[t][7].Value)){question.datas[i].pointValue = 0;}else{question.datas[i].pointValue = float.Parse(sheet1.Rows[i + 2][7].Value);}}#endregion}

相关文章:

Unity读取、新建Excel表格

把dll资源解压后&#xff0c;全部导入到unity中的Plugins文件下面 资源放在标题下方&#xff0c;可以自行下载 使用教程 引入命名空间 using SimpleExcel;。这个命名空间下主要有两个类&#xff1a;WorkBook和Sheet。WorkBook用于对整个excel文件的操作&#xff0c;如创建、打开…...

智能高效的IDE GoLand v2024.3全新发布——支持最新Go语言

GoLand 使 Go 代码的阅读、编写和更改变得非常容易。即时错误检测和修复建议&#xff0c;通过一步撤消快速安全重构&#xff0c;智能代码完成&#xff0c;死代码检测和文档提示帮助所有 Go 开发人员&#xff0c;从新手到经验丰富的专业人士&#xff0c;创建快速、高效、和可靠的…...

OpenCV相机标定与3D重建(21)投影矩阵分解函数decomposeProjectionMatrix()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 将投影矩阵分解为旋转矩阵和相机内参矩阵。 cv::decomposeProjectionMatrix 是 OpenCV 库中的一个函数&#xff0c;用于将投影矩阵&#xff08;…...

Flink State面试题和参考答案-(下)

如何监控 Flink 作业的状态大小&#xff1f; 监控 Flink 作业的状态大小是确保作业性能和稳定性的重要方面。以下是一些监控状态大小的方法&#xff1a; 使用 Flink Web UI: Flink 提供了一个 Web 用户界面&#xff0c;可以展示作业的当前状态大小&#xff0c;包括每个操作符…...

111.【C语言】数据结构之二叉树的销毁函数

目录 1.知识回顾 2.分析 3.代码 后序遍历销毁(最简洁) 前序遍历销毁(不推荐) 中序遍历销毁(不推荐) 4.将函数嵌入main函数中执行 1.知识回顾 106.【C语言】数据结构之二叉树的三种递归遍历方式 2.分析 销毁二叉树需要按照一定的顺序去销毁,例如:先销毁根还是先销毁根…...

[论文阅读] |智能体长期记忆与反思

写在前面&#xff1a;10月份的时候&#xff0c;联发科天玑9400发布&#xff0c;搭载这款旗舰 5G 智能体 AI 芯片的荣耀MagicOS9.0实现了一句话让手机自动操作美团点咖啡。很快商场实体店里便能看到很多品牌手机已经升级为智能体语音助手。下一步&#xff0c;这些智能体或许便能…...

【Trouble Shooting】Oracle ADG hung,出现ORA-04021

异常问题&#xff1a; 突然收到告警&#xff0c;ADG实例状态异常。 环境&#xff1a; 版本&#xff1a;Oracle 11.2.0.4.201020 状态&#xff1a;Active Dataguard 问题&#xff1a; 查看Oracle实例alert日志&#xff0c;发现有异常报错&#xff1a; Thu Dec 12 22:15:23 …...

基于springboot的招聘系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于springboot的招聘系统,java项目。 e…...

国科大智能设备安全-APK逆向分析实验

APK逆向分析实验 使用APK常用逆向分析工具&#xff0c;对提供的移动应用程序APK文件进行逆向分析&#xff0c;提交逆向后代码和分析报告。具体任务如下&#xff1a; 任务一&#xff1a;安装并熟悉Apktool、Jadx等APK常用逆向工具的使用方法&#xff0c;对提供的Facebook Updat…...

使用SpaceDesk实现iPad成为电脑拓展屏(保姆级教程)

使用SpaceDesk实现iPad成为电脑拓展屏 在官网下载了最新的Windows和Android版本软件&#xff0c;时间&#xff1a;2024.10.23 22:36 https://lxhyouth.lanzouv.com/b0fov5nla 密码:lxhyouth SpaceDesk是一个开源的软件, 所以说对学生和平民用户非常的友好, 连接后的画质也非…...

Unity UI Button 事件优先级调整技术方案

Unity UI Button 事件优先级调整技术方案 在 Unity 项目开发过程中&#xff0c;针对 UI Button 的事件执行顺序控制是一个常见需求。本文详细阐述两种将新添加事件置于第一个执行位置的方法&#xff0c;旨在为开发者提供全面且专业的技术参考。 一、基于反射机制的事件插入方…...

算法训练营day1 | 704二分查找,27移除元素, 34, 35

已经找到工作&#xff0c;但希望再试试春招&#xff0c;距离春招还剩两个月&#xff0c;加油。 这两道题都刷过很多遍了&#xff0c;没什么好说的直接过。 704 本以为刷了很多次没想到还是做错了&#xff0c;有些小细节要注意。 这里是迭代式的&#xff0c;函数式的也不难。 …...

66 基于单片机的太阳能充电、温度检测、档位PWM调速系统

所有仿真详情导航&#xff1a; PROTEUS专栏说明-CSDN博客 目录 一、主要功能 二、硬件资源 三、主程序编程 四、资源下载 一、主要功能 基于52单片机&#xff0c;采用DS18B20温度传感器检测温度&#xff0c;采用滑动变阻器连接ADC0832数模转换器模拟电量&#xff0c;采用…...

RK3576 Android14,内存大于4G时UVC应用无法申请内存

最近有个项目需要将Linux虚拟成UVC摄像头&#xff0c;开发过程中遇到一个奇怪的事情&#xff0c;通过V4l2框架接口申请内存时&#xff0c;相同的板子&#xff0c;只是内存一个4G一个8G。4G的内存可以申请成功&#xff0c;8G就不行。提示“内存不足” 内存更大反而内存不足&…...

12.12 深度学习-卷积的注意力机制-通道注意力SENet

# 告诉模型训练的时候 对某个东西 给予额外的注意 额外的权重参数 分配注意力 # 不重要的就抑制 降低权重参数 比如有些项目颜色重要 有些是形状重要 # 通道注意力 一般都要比较多的通道加注意力 # SENet # 把上层的特征图 自动卷积为 1X1的通道数不变的特征图 然后给每一个…...

H5 scss 移动端的样式适配

在移动端样式的scss文件中&#xff0c;出现了这些变量 env() 与 constant() 设置安全区域&#xff0c;是css里IOS11新增的属性&#xff0c;webkit的css函数&#xff0c;用于设定安全区域与边界的距离&#xff0c;有4个预定义变量&#xff1a; safe-area-inset-left: 安全区域距…...

【JAVA】Java项目实战—移动端项目:天气查询APP

在移动互联网时代&#xff0c;天气查询应用程序&#xff08;APP&#xff09;是日常生活中不可或缺的一部分。无论是出门旅行、上班通勤&#xff0c;还是安排户外活动&#xff0c;获取实时天气信息都至关重要。Java作为一种强大且广泛使用的编程语言&#xff0c;特别适合用于开发…...

SpringBoot - 动态端口切换黑魔法

文章目录 关键技术点核心原理Code 关键技术点 利用 Spring Boot 内嵌 Servlet 容器 和 动态端口切换 的方式实现平滑更新的方案&#xff0c;关键技术点如下&#xff1a; Servlet 容器重新绑定端口&#xff1a;Spring Boot 使用 ServletWebServerFactory 动态设置新端口。零停…...

Java爬虫技术:挖掘淘宝数据的利器

在当今大数据时代&#xff0c;网络爬虫技术已经成为获取网络数据的重要手段。Java作为一种强大且灵活的编程语言&#xff0c;非常适合开发复杂的网络爬虫系统。本文将详细介绍Java爬虫能够爬取的淘宝数据类型&#xff0c;并提供具体的代码示例&#xff0c;帮助您快速入门并掌握…...

Chromium for Android 浏览器的编译和安装

Chromium for Android 浏览器的编译和安装 Chromium for Android 浏览器的编译和安装环境要求和配置Chromium for Android源码下载安装 depot_tools获取代码转换现有的Linux检出安装额外的构建依赖运行钩子 Chromium for Android源码编译设置编译环境 编译 ChromiumChromium fo…...

领导说我年终奖1.5万是全公司最高,让我别到处说,结果昨天发工资才知道:私下问了其他人,都比我多一倍,下个月我直接离职走人!

有个哥们说&#xff0c;领导拍着他肩膀跟他说&#xff1a;"你今年年终奖1.5万&#xff0c;全公司最高的&#xff0c;别到处说啊&#xff0c;影响不好。"哥们当时还挺感动&#xff0c;觉得自己被认可了&#xff0c;干了一年值了。结果昨天发工资&#xff0c;他私下一打…...

AMD Ryzen系统调试利器:SMUDebugTool全方位应用指南

AMD Ryzen系统调试利器&#xff1a;SMUDebugTool全方位应用指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gitc…...

React自定义Hook开发:解锁逻辑复用的终极指南

React自定义Hook开发&#xff1a;解锁逻辑复用的终极指南 【免费下载链接】react-fundamentals Material for my React Fundamentals Workshop 项目地址: https://gitcode.com/gh_mirrors/re/react-fundamentals React自定义Hook是提升组件逻辑复用能力的核心技术&#…...

国内顶级的SEO技术网站有哪些

国内顶级的SEO技术网站有哪些&#xff1f; 在当今互联网时代&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;已经成为每个网站营销者不可忽视的重要环节。国内顶级的SEO技术网站不仅为业内人士提供了宝贵的技术分享和实践经验&#xff0c;还为企业的网站流量优化提供了有…...

支持RTX 30/40系显卡:PyTorch-2.x-Universal-Dev-v1.0镜像GPU验证指南

支持RTX 30/40系显卡&#xff1a;PyTorch-2.x-Universal-Dev-v1.0镜像GPU验证指南 1. 引言&#xff1a;为什么需要验证GPU环境 在深度学习项目开发中&#xff0c;GPU加速是提升模型训练效率的关键因素。特别是对于RTX 30/40系列显卡用户&#xff0c;正确配置CUDA环境与PyTorc…...

AI 时代做自媒体,他从方法论上就赢了绝大部分人

AI 时代做自媒体,他从方法论上就赢了绝大部分人 昨天刷到卡兹克的一篇文章,他分享了自己做内容三年总结的 10 条方法论。 看完之后我的感受是:这哥们从方法论上就赢了。 简单介绍一下卡兹克。他的公众号「数字生命卡兹克」是 AIGC 领域的头部 IP,新榜 AI 行业公众号排名…...

像素剧本圣殿详细步骤:如何重置时空+保存平行宇宙创作记录

像素剧本圣殿详细步骤&#xff1a;如何重置时空保存平行宇宙创作记录 1. 认识像素剧本圣殿 像素剧本圣殿是一款基于Qwen2.5-14B-Instruct深度微调的专业剧本创作工具。它将强大的AI推理能力与独特的8-Bit复古美学相结合&#xff0c;为创作者提供了一个沉浸式的剧本开发环境。…...

ZLMediaKit(webrtc)在CentOS7上的高效部署与常见问题解决指南

1. 环境准备与依赖安装 在CentOS7上部署ZLMediaKit(webrtc)前&#xff0c;需要先搞定基础环境。我遇到过不少新手直接克隆代码就开始编译&#xff0c;结果被各种报错劝退。下面这些依赖就像盖房子前要打的地基&#xff0c;缺一不可。 1.1 更新系统与基础工具 刚装好的CentOS7就…...

公司SEO推广与关键词策略的关系是什么_公司SEO推广的长期效果如何确保

公司SEO推广与关键词策略的关系是什么_公司SEO推广的长期效果如何确保 什么是SEO推广&#xff1f; 我们来了解一下什么是SEO推广。SEO&#xff0c;全称搜索引擎优化&#xff0c;是通过优化网站内容和结构&#xff0c;提高其在搜索引擎自然排名中的位置&#xff0c;从而吸引更…...

日志配置陷阱:Telegraf Windows版本兼容性问题深度解析

日志配置陷阱&#xff1a;Telegraf Windows版本兼容性问题深度解析 Windows系统管理员常面临日志采集配置升级后服务无法启动的困境。Telegraf作为InfluxData开源的指标收集代理&#xff08;Agent&#xff09;&#xff0c;其Windows版本在日志配置变更时可能引发兼容性问题。本…...