游戏蛮牛学习群(纯技术交流,不闲聊):159852603
游戏蛮牛 手机端
开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

教程分享

关注:786

当前位置:游戏蛮牛 技术专区 教程分享

查看: 531|回复: 6

[基础知识] unity对于Excel的读写心得

[复制链接]  [移动端链接]
5熟悉之中
626/1000
排名
5247
昨日变化
24

4

主题

128

帖子

626

积分

Rank: 5Rank: 5

UID
226406
好友
2
蛮牛币
1472
威望
0
注册时间
2017-6-12
在线时间
236 小时
最后登录
2018-9-25
发表于 2018-6-29 11:04:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
本帖最后由 冯腾飞 于 2018-6-28 15:07 编辑

最近做了一个关于读取Excel数据,并修改的一个项目,过程中查了很多的资料(碰到很多大坑),整理出来,对自己也是一个总结(偷个懒就不排版了,能看懂就好)
先说一下unity读取Excel功能
首先加入库文件Excel.dll和ICSharpCode.SharpZipLib库文件,官方链接 http://exceldatareader.codeplex.com/
读取的栗子网上有很多,我这就不一一细说,直说一些在过程中碰到的一些坑
1、Excel版本格式的问题,刚开始在unity编辑器编辑的时候没什么问题,
一旦你发布出来版本之后,嘿嘿,问题来了,识别不到了吧
解决方法:
读取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);
注意:这个时候发布成EXE格式还是读取不到就麻烦了
需要添加I18N*.dll等一些列dll才能打开。添加时可以在编辑器的Plugins添加,也可以发布后在***_Data/Managed下面添加这些dll。


这些dll来自Unity安装路径C:\Program Files\Unity\Editor\Data\Mono\lib\mono\unity中。

1.png



再说一下unity写入Excel功能
怎么生成一个Excel文件,并把数组或字典中的数据写入Excel中呢?
此时需要一个Excel.dll的姐妹,EPPlus.dll 官方链接 https://epplus.codeplex.com/releases/view/118053
使用方法在官方的文档中都有,这里只贴出我的实现方式。

需要添加的命名空间
using OfficeOpenXml;
写入方法

public static void WriteExcel(string outputDir)
    {
        //string outputDir = EditorUtility.SaveFilePanel("Save Excel", "", "New Resource", "xlsx");
        FileInfo newFile = new FileInfo(outputDir);
        if (newFile.Exists)
        {
            newFile.Delete();  // ensures we create a new workbook
            newFile = new FileInfo(outputDir);
        }
        using (ExcelPackage package = new ExcelPackage(newFile))
        {
            // add a new worksheet to the empty workbook
            ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Sheet1");
            //Add the headers
            worksheet.Cells[1, 1].Value = "ID";
            worksheet.Cells[1, 2].Value = "Product";
            worksheet.Cells[1, 3].Value = "Quantity";
            worksheet.Cells[1, 4].Value = "Price";
            worksheet.Cells[1, 5].Value = "Value";

            //Add some items...
            worksheet.Cells["A2"].Value = 12001;
            worksheet.Cells["B2"].Value = "Nails";
            worksheet.Cells["C2"].Value = 37;
            worksheet.Cells["D2"].Value = 3.99;

            worksheet.Cells["A3"].Value = 12002;
            worksheet.Cells["B3"].Value = "Hammer";
            worksheet.Cells["C3"].Value = 5;
            worksheet.Cells["D3"].Value = 12.10;

            worksheet.Cells["A4"].Value = 12003;
            worksheet.Cells["B4"].Value = "Saw";
            worksheet.Cells["C4"].Value = 12;
            worksheet.Cells["D4"].Value = 15.37;

            //save our new workbook and we are done!
            package.Save();
        }
    }


还有一些细节的东西,因手头工作的比较多,就不一一说了,有什么不明白的,可以加我的QQ;1183215764
欢迎一切探讨





回复

使用道具 举报

7日久生情
2961/5000
排名
2452
昨日变化
8

0

主题

2117

帖子

2961

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
185339
好友
1
蛮牛币
4266
威望
0
注册时间
2016-11-20
在线时间
300 小时
最后登录
2018-9-25
发表于 2018-7-4 11:14:16 | 显示全部楼层

回复

使用道具 举报

3偶尔光临
180/300
排名
13995
昨日变化
6

2

主题

52

帖子

180

积分

Rank: 3Rank: 3Rank: 3

UID
135780
好友
0
蛮牛币
502
威望
0
注册时间
2016-1-28
在线时间
72 小时
最后登录
2018-9-23
发表于 2018-7-5 17:41:40 | 显示全部楼层
mark一下

回复

使用道具 举报

3偶尔光临
260/300
排名
8558
昨日变化
6

0

主题

89

帖子

260

积分

Rank: 3Rank: 3Rank: 3

UID
287099
好友
0
蛮牛币
575
威望
0
注册时间
2018-6-24
在线时间
43 小时
最后登录
2018-9-24
发表于 2018-7-5 21:15:40 | 显示全部楼层
多谢分享

回复

使用道具 举报

5熟悉之中
989/1000
排名
1987
昨日变化
4

6

主题

87

帖子

989

积分

Rank: 5Rank: 5

UID
215462
好友
1
蛮牛币
1976
威望
0
注册时间
2017-3-30
在线时间
256 小时
最后登录
2018-9-25
发表于 2018-7-30 10:35:46 | 显示全部楼层
学习了,刚好也要用到,先给好评,再取之自用
[发帖际遇]: new_wind 在网吧通宵,花了 2 蛮牛币. 幸运榜 / 衰神榜

回复 支持 反对

使用道具 举报

5熟悉之中
989/1000
排名
1987
昨日变化
4

6

主题

87

帖子

989

积分

Rank: 5Rank: 5

UID
215462
好友
1
蛮牛币
1976
威望
0
注册时间
2017-3-30
在线时间
256 小时
最后登录
2018-9-25
发表于 2018-7-30 11:23:17 | 显示全部楼层
老哥,这个库文件好像不行。。。。QQ还能加吗?

回复 支持 反对

使用道具 举报

5熟悉之中
626/1000
排名
5247
昨日变化
24

4

主题

128

帖子

626

积分

Rank: 5Rank: 5

UID
226406
好友
2
蛮牛币
1472
威望
0
注册时间
2017-6-12
在线时间
236 小时
最后登录
2018-9-25
 楼主| 发表于 2018-7-30 16:50:31 | 显示全部楼层
new_wind 发表于 2018-7-29 15:23
老哥,这个库文件好像不行。。。。QQ还能加吗?

1183215764

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 返回顶部 返回列表