本文仅作笔记学习和分享,不用做任何商业用途
本文包括但不限于unity官方手册,unity唐老狮等教程知识,如有不足还请斧正
终于找到一个比较方便容易读表的方式了,以前用json读写excel转的cvs格式文件我怎么使用怎么别扭,觉得太繁琐了
1.Excel.Dll
Excel.dll 是一个库文件,通常用于在C#等编程语言中处理Excel文件。它并不是一个插件,(但是需要放再unity创建的Plugins文件里,不然可能读不出来命名空间)而是一个动态链接库(DLL),提供了读取和写入Excel文件的功能
2.基本读表流程如下
Excel----->文件流------>ExcelDataReader----->DataSet
为什么要ExcelDataReader这一步?是因为要数据要先读到内存来再操作,而Excel.Dll作为一个动态链接库并不能通过(DataSet)直接对文件流的内容读取
相当于ExcelDataReader是Excel.Dll的第一步
而Excel----->文件流是unity的第一步,都是必不可少的
//1.打开指定路径的Excel文件,并将其存储在文件流中
using (FileStream fs = File.Open((Application.dataPath + "/Excel/PlayerInfo.xlsx"), FileMode.Open, FileAccess.Read))
{
// 2.使用ExcelDataReader库中的方法读取文件流中的Excel文件
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(fs);
// 3.将读取到的Excel数据转换为DataSet类型,便于后续处理
DataSet dataSet = excelReader.AsDataSet();
3.获取单元格内容
之后就只需要通过控制 DataSet这个对象操作数据
//表中数据操作相关:
//获取表
DataTable dataTable = dataSet.Tables[0];
//获取表中的行
DataRow dataRow = dataTable.Rows[0];
//获取行中的列
//dataRow[0];
图解上述代码
可以思考一下如何通过一个简单的数据结构得到全部单元格内容