unity 读取Excel注意大坑

作者: 湛月 | 来源:发表于2016-06-30 14:56 被阅读4279次

前提:使用unity读取excel时,使用如图的dll:

去读取的时候,在编辑器内运行正常,但是在导出时会发现exe在运行时不能正常读取excel。

用这个dll可以读取2007以后的格式.xlsx,也可以读取97-2003的.xls。

笔者最开始使用的是2007版本,导出exe不能读取数据。

解决方法:读取97-2003的文件就可以。但是读取97-2003文档的方法有点不同,

//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;//获取列数

rows = result.Tables[0].Rows.Count;//获取行数

Debug.Log(columns);

Debug.Log(rows);

////从第二行开始读

//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://github.com/ExcelDataReader/ExcelDataReader

相关文章

  • unity 读取Excel注意大坑

    前提:使用unity读取excel时,使用如图的dll: 去读取的时候,在编辑器内运行正常,但是在导出时会发现ex...

  • Unity 读取 Excel

    一个下午简单的做了一个小工具简单展示 Excel 的数据根据策划讨论过后,发现策划习惯于用 Excel 去做搜索替...

  • Unity读取Excel

  • Unity读取Excel文件

    首先导入Excel.dll和ICSharpCode.SharpZipLib.dll两个动态库文件 引用命名空间 u...

  • 【Unity】读取Excel工具

    写在前面这个工具在年初的时候就有一个想法雏形,但是为什么到今天才完成呢,其实就是懒,每天下班回家根本都不想动了,就...

  • 【python】-2 pandas

    1.1 读取文件注意: 1)不要尝试读取excel文件(不便于解析),最好使用通用的csv或者txt格式2)注意编...

  • Unity 使用 ExcelDataReader 读取Excel

    写在前面 看了网上很多的教程之后,决定经过自己的学习之后,总结出来一个傻瓜式教程,以方便向我一样自学的小伙伴,不要...

  • Unity 读取CSV与Excel

    http://www.cnblogs.com/wuzhang/p/wuzhang20150511.html

  • R语言读写excel文件2021.2.24

    1、读取excel文件 1.1 读取单个excel文件 直接用read.table()读取excel文件, 读取从...

  • python操作Excel

    写入Excel 举个栗子:读取数据库数据写入Excel 读取Excel 修改Excel

网友评论

  • 记得要忘记_c7b5:楼主的意思是这个方式打包EXE之后不能读取2007之后的Excel??
    6524726490e3:您好,请问在unity3d里面写入excelReader.IsFirstRowAsColumnNames = true;这句读取excel文件时,总是报错InvalidCastException: Cannot cast from source type to destination type.,您知道怎么回事吗?万分感谢
    6524726490e3:您好,请问在unity3d里面写入excelReader.IsFirstRowAsColumnNames = true;这句读取excel文件时,总是报错InvalidCastException: Cannot cast from source type to destination type.,您知道怎么回事吗?万分感谢
    a509960e2443:可以吧http://www.cnblogs.com/XRTSDUT2008/p/6964856.html
  • a8bf62b973c3:你好,读取的03版本的excel我这边测试只能读取到数字,英文和中文都获取不到,请问你有这个情况吗
    a509960e2443:我也是,试了不行,07可以http://www.cnblogs.com/XRTSDUT2008/p/6964856.html
    a509960e2443:@湛月 我试了一下不行,07发布可以显示excel文本,需要加一些dll。详见博客http://www.cnblogs.com/XRTSDUT2008/p/6964856.html
    湛月:你修改一下excel编码吧,用utf保存试试

本文标题:unity 读取Excel注意大坑

本文链接:https://www.haomeiwen.com/subject/jrxfjttx.html