unity 讀取Excel注意大坑

前提:使用unity讀取excel時(shí),使用如圖的dll:


去讀取的時(shí)候,在編輯器內(nèi)運(yùn)行正常,但是在導(dǎo)出時(shí)會(huì)發(fā)現(xiàn)exe在運(yùn)行時(shí)不能正常讀取excel。

用這個(gè)dll可以讀取2007以后的格式.xlsx,也可以讀取97-2003的.xls。

筆者最開(kāi)始使用的是2007版本,導(dǎo)出exe不能讀取數(shù)據(jù)。

解決方法:讀取97-2003的文件就可以。但是讀取97-2003文檔的方法有點(diǎn)不同,

//1. Reading from a binary Excel file ('97-2003 format; *.xls)

IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream);

//2. Reading from a OpenXml Excel file (2007 format; *.xlsx)

IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);

讀取到的excelReader有三種方法:選取一種可以使用的(自己多試試哈)

//3. DataSet - The result of each spreadsheet will be created in the?

result.TablesDataSet result = excelReader.AsDataSet();

//4. DataSet - Create column names from first row

excelReader.IsFirstRowAsColumnNames =true;

DataSet result = excelReader.AsDataSet();

//5. Data Reader methods

while(excelReader.Read())

{

//excelReader.GetInt32(0);

}

最后上代碼:

public static void GameReadExcel(string ExcelPath)

{

FileStream stream = File.Open(Application.dataPath + ExcelPath, FileMode.Open, FileAccess.Read);

//讀取2007以后版本

// IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);

//讀取2003以后版本

IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader (stream);

result = excelReader.AsDataSet();

columns = result.Tables[0].Columns.Count;//獲取列數(shù)

rows = result.Tables[0].Rows.Count;//獲取行數(shù)

Debug.Log(columns);

Debug.Log(rows);

////從第二行開(kāi)始讀

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

//? ? }

//}

}

本文如有版權(quán)問(wèn)題請(qǐng)聯(lián)系作者。

?源碼地址:https://github.com/ExcelDataReader/ExcelDataReader

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容