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);
}
}
}

便是这么简略,读取你想要的数据,干你想干的工作。