遇到了需要读表格的需求,因为之前操作读取csv文件比较熟悉,本来也想把表格转成csv格式读取,但是实际操作过程中发现,表格中的内容是有逗号的,一整段文本里都有没有任何规律的逗号,而读csv文件格子间是用逗号分隔的,所以用这个方法会把一个格子里有逗号的文本分成几个部分,这不是我期望的。所以我查了下用unity直接读取xlsx表格的方法。在这儿记录下来。
using UnityEngine;
using System.Collections;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.IO;
using Excel;
using System.Data;
public class ReadExcel:MonoBehaviour {
public string ExcelPathName;
void Start() {
GameReadExcel(ExcelPathName);
}
/// <summary>
/// 只读Excel方法
/// </summary>
/// <param name="ExcelPath"></param>
/// <returns></returns>
public static void GameReadExcel(string ExcelPath)
{
FileStream stream = File.Open(Application.dataPath + ExcelPath, FileMode.Open, FileAccess.Read);
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
DataSet result = excelReader.AsDataSet();
int columns = result.Tables[0].Columns.Count;//获取列数
int rows = result.Tables[0].Rows.Count;//获取行数
//从第二行开始读
for (int i = 1; i < rows; i++)
{
for (int j = 0; j < columns; j++)
{
string nvalue = result.Tables[0].Rows[i][j].ToString();
Debug.Log(nvalue);
}
}
}
}
其中需要注意的是这个需要引用
![](https://i-blog.csdnimg.cn/blog_migrate/6536cf5d1d0ffc17aab07fb4e088c8e1.webp?x-image-process=image/format,png)
这几个封装好的dll,前面俩的官网下载地址:http://exceldatareader.codeplex.com/
system.data.dll的路径在unity安装路径下的Editor\Data\Mono\lib\mono\unity 这个路径下