前言
代码如下:
//文本解析private void ParseText(){//打开文本 读FileStream stream = File.Open(Application.streamingAssetsPath + excelname, FileMode.Open, FileAccess.Read, FileShare.Read);//读取文件流IExcelDataReader excelRead = ExcelReaderFactory.CreateOpenXmlReader(stream);//转化为数据DataSet result = excelRead.AsDataSet();//获取表格行数int row = result.Tables[0].Rows.Count;//每行for (int i=1; i<row;i++){//类型PanelType type = (PanelType)System.Enum.Parse(typeof(PanelType),result.Tables[0].Rows[i][0].ToString());//预制体路径并添加入字典PanelPathDic.Add(type, result.Tables[0].Rows[i][1].ToString());}//关闭文件if (stream != null){stream.Close();}}
报错如下:
这里是报空,但是每个人错误其实不一样!
仔细观察,我都已经是打包到桌面C盘的东西,然后读取路径居然是D盘,说明就是路径问题!
首先你可以选择改代码,换文件夹去存xlsx,但是这样不方便,因为你不止一张配置表,也就是不同的读取逻辑有很多,意味着要修改的代码复杂繁多。
有没有更好的办法?
当然有,
解决方法:
- 首先检查是否含有下面三个动态链接库dll,且这些文件要放在Plugins文件夹下,有些低版本可能还需要System.Data,但高版本就不需要了。
- 然后找到unity的安装路径,文件结构如下找到这圈起来的6个文件,同样拖到Plugins下,再次打包,问题解决!