2020版Unity读写Excel——含打包注意事项
说在前面:由于项目需求,需要读写excel文件,不要求转化为csv格式。 参考了许多优秀博主的文章,这里就不一一贴出来了,本章属于技术总结吧,以便后面回顾。
一、 编辑器状态下导入必要的插件包
1.1、需要导入的包(资源在1.3)
- 读Excel 文件——需要 Excel.DLL
- 写 Excel 文件——需要 EPPlus.DLL
- 其它包文件——需要ICSharpCode.SharpZipLib.DLL
- 还有一个System.Data,以前有博主的文章说要导入,但2020版应该不需要了,因为我无论导入哪个API版本的都给我整报错,所以我没有加这个,并不影响使用。
- 所有DLL文件都要放在 Plugins 文件夹里面!!!
注意事项:确保这三个DLL文件符合你使用的.NET版本,我的都是 .NET 3.5的,以及是可以正常使用的动态链接库。(我前面用的Excel.Dll就是有问题的,所以一直读不出来,后面才找到对的文件。)
1.2、脚本需要引用的命名空间
- 这里就直接上代码了,后面讲具体读写操作时就忽略这一块了。
using Excel; //读excel文件
using System.IO; //用file 工具读写文件
using System.Data; // 读写数据
using OfficeOpenXml; // 写excel文件(Epplus)
using System;
- 有趣的点:我在引用时,有时候会出现引用报错,然后我把DLL文件从Plugins中挪出来到Asset中,代码就没报错了。然后再重新扔进Plugins。应该是自己项目的问题吧。
1.3、相关资源与参考链接
- 这些资源可以在网上就收到了,其中Excel比较难找,要找个梯子去官网找。不过还是有博主无私贡献出来了,链接如下:
https://blog.csdn.net/wangjiangrong/article/details/79980447
二、打包状态下导入必要的包
- 如果项目需要打包,那你需要添加更多的DLL文件。这里也是参考了许多博主的文章,这里针对于2020版本做一个小记录。(我的2020不需要加 system.data)
-找到你unity安装目录,将以下的几个文件扔到Plugins中。
这里有个坑一开始试了unity中的这些插件,然后报错了,然后又试了不同API版本的,最后在unityjit 中的插件就能用。而且要一个一个DLL拉到Plugins中;如果一次性拉,找个项目就崩了(离谱)。
三、文件路径的选择与处理(打包后PC)
- 网上又很多打包相关的介绍,其中应该最厉害的还是AB打包,这里把一个比较好的博文链接贴给大家:https://blog.csdn.net/linxinfa/article/details/108894280
- 由于我的项目使用的Excel数据量没有很大,我就直接使用Application.dataPath ,支持可读可写。可以在Asset下建立个文件夹(excels),路径进行适当修改就行(Application.dataPath+“/excels/”+文件名)注意事项 如果使用此路径,要在导出后,自行在 _Data文件夹中添加内容。
四、读与写操作
- 读写操作网上就有太多例子了,这里贴出部分核心代码。推荐使用协程来完成读写功能。
- 以下链接是我主要参考的: https://www.cnblogs.com/xiaoyulong/p/11026079.html
读的案例
- 2007以后的版本指后缀为 .xlsx 的。如果读的版本不一致,是读不到东西的。
IEnumerator ReadEexcel_cunhuo()
{
if (File.Exists