寫在前面
看了網(wǎng)上很多的教程之后攒磨,決定經(jīng)過(guò)自己的學(xué)習(xí)之后,總結(jié)出來(lái)一個(gè)傻瓜式教程汤徽,以方便向我一樣自學(xué)的小伙伴娩缰,不要走太多的彎路。
網(wǎng)上很多的教程都提到了Momo大佬的博客Unity3D研究院之MAC&Windows跨平臺(tái)解析Excel(六十五)但是本文中提到的Excel 和 ICSharpCode.SharpZipLib第三方開(kāi)發(fā)包卻沒(méi)有明確給出谒府。這里直接給出這個(gè)第三方開(kāi)發(fā)包的Github地址拼坎。
現(xiàn)在開(kāi)始第一步梧奢,首先我們要獲取這個(gè)Excel的第三方庫(kù)。打開(kāi)上面的Github地址演痒。克隆庫(kù)到本地趋惨。然后解壓Zip后打開(kāi)文件夾鸟顺。
用VS打開(kāi)Vs解決方案.sln,生成第三方庫(kù)器虾。
之后在工程目錄下找到下面的這個(gè)文件夾中選中的三個(gè)文件讯嫂。
為什么要選擇net35是因?yàn)閁nity2018.2.15f1的當(dāng)前版本中的editor只對(duì)net3.5的版本支持。
然后復(fù)制這三個(gè)文件到Unity工程資源目錄: Assets/Plugins/
下≌咨常現(xiàn)在我們就算是做好了第一步的準(zhǔn)備欧芽。
第二步,創(chuàng)建腳本使用VS打開(kāi)腳本葛圃。這里附上我測(cè)試時(shí)的一段程序千扔。
using System.IO;
using System.Data;
using ExcelDataReader;
public class ReadExcel : MonoBehaviour {
private string FilePath;
private void Start()
{
FilePath = Application.dataPath + "/Resources/LevelsInfo/LevelList.xlsx";
ReadExcelStream();
Debug.Log(FilePath);
}
void ReadExcelStream()
{
FileStream stream = File.Open(FilePath, FileMode.Open, FileAccess.Read);
IExcelDataReader excelDataReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
DataSet result = excelDataReader.AsDataSet();
int columns = result.Tables[0].Columns.Count;
int rows = result.Tables[0].Rows.Count;
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < columns; j++)
{
string nvalue = result.Tables[0].Rows[i][j].ToString();
Debug.Log(nvalue);
}
}
excelDataReader.Close();
}
}
但是這里會(huì)報(bào)錯(cuò)
然后這里就需要使用NuGet 程序包管理器 添加第三方依賴。
如上打開(kāi)程序包管理器控制臺(tái)
使用Install-Package ExcelDataReader
來(lái)添加第三方譯依賴库正。
依賴添加完了曲楚,之后就要再添加System.Data.dll文件到工程中。
根據(jù) u3d引用System.Data問(wèn)題的一些解決辦法 這篇博客褥符,說(shuō)明需要把Unity安裝路徑下u3d\Editor\Data\Mono\lib\mono\2.0\System.Data.dll
文件直接復(fù)制到工程目錄下直接using來(lái)解決錯(cuò)誤龙誊。
到這里,就可以正常使用這個(gè)Excel第三方庫(kù)了喷楣。下面是腳本輸出結(jié)果趟大。
關(guān)于AsDataSet()方法我還沒(méi)有總結(jié),但是在官方的Github的下面有相關(guān)的介紹和例子铣焊,可以看看逊朽。