Unity3D读取之——读取Excel文件内容
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity3D读取之——读取Excel文件内容相关的知识,希望对你有一定的参考价值。
Unity3D开发过程中,对于Excel表的读取是很频繁的一件事情,主要是用来记录各种数据,各个平台可能有很多方式方法,比如android,你可以插件,也可以用第三方Java开发,打包成Plugin下用的.dll包,再C#和Java交互实现Excel读取(比较麻烦,不建议,除非你对安卓开发也很了解,可以使用)
今天说一下FlexReader插件,专门读取Excel文件内容。
直接上代码:
插件:可以上Asset Store上直接搜FlexReader(土豪使用)
下载地址:链接:https://pan.baidu.com/s/1mLTu2ymQY0Wmvpzb0DQ5iw 密码:j9m6
//异步加载文件
IEnumerator LoadGuideAync(string path, DownloadHandler handler)
{
var url = Path.Combine(Application.streamingAssetsPath, path);
using (var request = UnityWebRequest.Get(url))
{
yield return request.SendWebRequest();
var bytes = request.downloadHandler.data;
handler(bytes);
}
}
//加载到内容回调
void LoadGuideData(byte[] bytes)
{
//bytes就是加载Excel中文件内容流
if (bytes.Length == 0)
return;
//通过插件的WorkBook类转换得到一个列表,这个列表的大小就表示的是Excel中表的个数。
var book = new WorkBook(bytes);
Debug.Log(book.Count);
if (book.Count < 2)
return;
InitNoviceGuideRectTransform(book[0]);
InitNoviceGuideRectTransform(book[1]);
}
对每一个表进行解析,读取每格的数据
void InitNoviceGuideRectTransform(IEnumerable<Row> rows)
{
int index = -1;
int count = rows.Count(r => !r.IsEmpty());
if (count == 0)
return;
//将二维数字存到列表 ,通过行列读取
List<Row> rowData = new List<Row>(rows);
for (int j = 1; j < rowData .Count; j++)//行
{
for (int i = 0; i < rowData[j].Count; i++)//列
{
Debug.Log(rowData[j][i].Text);
}
}
}
就是这么简单,读取你想要的数据,干你想干的事情。
以上是关于Unity3D读取之——读取Excel文件内容的主要内容,如果未能解决你的问题,请参考以下文章
Unity3D读取数据Excel文件操作(创建读取写入修改)