Unity使用MiniExcel读取Excel文件中的数据

2023-10-13 05:20

本文主要是介绍Unity使用MiniExcel读取Excel文件中的数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

将MiniExcel.dll文件导入到Unity中

1、获取MiniExcel.dll文件

打开Visual Studio

在程序集中右键选择管理NuGet程序包

搜索MiniExcel安装

找到该文件所在路径

2、找到Dll文件 将其复制到Unity的Plugins文件夹中。

MiniExcel使用

使用命名空间

using MiniExcelLibs;

1、按行打印Excel中的工作表的所有数据

 //Excel文件路径      var filePath = "E:/WorkSpace/UnityWorks/MiniExcelTest/ExcelFile/超市.xlsx";       //获取Excel中所有工作表的名称var sheetNames = MiniExcel.GetSheetNames(filePath);foreach (var sheetName in sheetNames){//获取工作表数据总行数var rows = MiniExcel.Query(filePath, sheetName: sheetName);//避免读取数据为空的工作表if (rows == null){continue;    }foreach (var row in rows){ Debug.Log($"{row.A} {row.B} {row.C}");}}

 

 

代码中写的A,B,C...表示的是工作表中上方的编号。并且如果我们写了Row.D(以上图为例),可以看到表中是不存在数据的,系统就会报错。那么问题来了,开发中处理的数据表多种多样,行列数是肯定不会一样的。如果考虑到方法的通用,像上述那样row.A、row.B一直点出来感觉不太现实。

 使用整数索引取值

    /// <summary>/// 获取Excel数据/// </summary>public static void GetExcelData(){//Excel文件路径var filePath = "E:/WorkSpace/UnityWorks/MiniExcelTest/ExcelFile/超市.xlsx";//获取Excel中所有工作表Sheet名称var sheetNames = MiniExcel.GetSheetNames(filePath);foreach (var sheetName in sheetNames){//获取工作表数据总行数var rows = MiniExcel.Query(filePath, sheetName: sheetName);//获取工作表数据总列数var columns = MiniExcel.GetColumns(filePath,sheetName:sheetName);var comSum = columns.Count;//避免读取数据为空的工作表if (rows == null || columns == null){continue;}int count = 0;var intRows = ConvertToIntIndexRows(rows);StringBuilder sb = new StringBuilder();foreach (var r in intRows){for (int i = 0; i < comSum; i++){sb.Append(r[i] + "\t ");}sb.Append("\n");}Debug.Log(sb.ToString());}}/// <summary>/// 使用整数索引取值/// </summary>/// <param name="rows"></param>/// <returns></returns>private static IEnumerable<Dictionary<int, object>> ConvertToIntIndexRows(IEnumerable<object> rows){ICollection<string> keys = null;var isFirst = true;foreach (IDictionary<string,object> r in rows){if(isFirst){keys = r.Keys;isFirst = false;}var dic = new Dictionary<int, object>();var index = 0;foreach (var key in keys)dic[index++] = r[key];yield return dic;}}

 

这样就更加灵活了

 

更多使用细节可以访问  MiniExcel 的Github链接:

MiniExcel/README.zh-CN.md at master · mini-software/MiniExcel · GitHub

 

这篇关于Unity使用MiniExcel读取Excel文件中的数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/201034

相关文章

C#中checked关键字的使用小结

《C#中checked关键字的使用小结》本文主要介绍了C#中checked关键字的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录✅ 为什么需要checked? 问题:整数溢出是“静默China编程”的(默认)checked的三种用

C#中预处理器指令的使用小结

《C#中预处理器指令的使用小结》本文主要介绍了C#中预处理器指令的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 第 1 名:#if/#else/#elif/#endif✅用途:条件编译(绝对最常用!) 典型场景: 示例

Springboot配置文件相关语法及读取方式详解

《Springboot配置文件相关语法及读取方式详解》本文主要介绍了SpringBoot中的两种配置文件形式,即.properties文件和.yml/.yaml文件,详细讲解了这两种文件的语法和读取方... 目录配置文件的形式语法1、key-value形式2、数组形式读取方式1、通过@value注解2、通过

C#实现将XML数据自动化地写入Excel文件

《C#实现将XML数据自动化地写入Excel文件》在现代企业级应用中,数据处理与报表生成是核心环节,本文将深入探讨如何利用C#和一款优秀的库,将XML数据自动化地写入Excel文件,有需要的小伙伴可以... 目录理解XML数据结构与Excel的对应关系引入高效工具:使用Spire.XLS for .NETC

C#如何在Excel文档中获取分页信息

《C#如何在Excel文档中获取分页信息》在日常工作中,我们经常需要处理大量的Excel数据,本文将深入探讨如何利用Spire.XLSfor.NET,高效准确地获取Excel文档中的分页信息,包括水平... 目录理解Excel中的分页机制借助 Spire.XLS for .NET 获取分页信息为什么选择 S

Java利用Spire.XLS for Java自动化设置Excel的文档属性

《Java利用Spire.XLSforJava自动化设置Excel的文档属性》一个专业的Excel文件,其文档属性往往能大大提升文件的可管理性和可检索性,下面我们就来看看Java如何使用Spire... 目录Spire.XLS for Java 库介绍与安装Java 设置内置的 Excel 文档属性Java

Mysql中RelayLog中继日志的使用

《Mysql中RelayLog中继日志的使用》MySQLRelayLog中继日志是主从复制架构中的核心组件,负责将从主库获取的Binlog事件暂存并应用到从库,本文就来详细的介绍一下RelayLog中... 目录一、什么是 Relay Log(中继日志)二、Relay Log 的工作流程三、Relay Lo

使用Redis实现会话管理的示例代码

《使用Redis实现会话管理的示例代码》文章介绍了如何使用Redis实现会话管理,包括会话的创建、读取、更新和删除操作,通过设置会话超时时间并重置,可以确保会话在用户持续活动期间不会过期,此外,展示了... 目录1. 会话管理的基本概念2. 使用Redis实现会话管理2.1 引入依赖2.2 会话管理基本操作

Springboot请求和响应相关注解及使用场景分析

《Springboot请求和响应相关注解及使用场景分析》本文介绍了SpringBoot中用于处理HTTP请求和构建HTTP响应的常用注解,包括@RequestMapping、@RequestParam... 目录1. 请求处理注解@RequestMapping@GetMapping, @PostMappin

springboot3.x使用@NacosValue无法获取配置信息的解决过程

《springboot3.x使用@NacosValue无法获取配置信息的解决过程》在SpringBoot3.x中升级Nacos依赖后,使用@NacosValue无法动态获取配置,通过引入SpringC... 目录一、python问题描述二、解决方案总结一、问题描述springboot从2android.x