前言
代码如下:
//文本解析
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下,再次打包,问题解决!