Unity配置表xlsx/xls打包后读取错误问题

文章讲述了在Unity项目中,如何处理从非预期路径读取Excel文件的问题,提出了解决方案,即通过添加必要的动态链接库到Plugins文件夹并调整文件结构来确保所有配置表的统一读取路径。
摘要由CSDN通过智能技术生成

前言

代码如下: 

    //文本解析
    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,但是这样不方便,因为你不止一张配置表,也就是不同的读取逻辑有很多,意味着要修改的代码复杂繁多。

有没有更好的办法?

当然有,

解决方法:

  1. 首先检查是否含有下面三个动态链接库dll,且这些文件要放在Plugins文件夹下,有些低版本可能还需要System.Data,但高版本就不需要了。
  2. 然后找到unity的安装路径,文件结构如下找到这圈起来的6个文件,同样拖到Plugins下,再次打包,问题解决!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值