您当前的位置: 首页 >  unity

unity 使用EPPlus对Excel的创建、写入、读取操作

发布时间:2021-01-14 05:08:28 ,浏览量:6

目录
  • 简介
  • 1.创建Excel及写入数据
  • 2.读取Elxcel中的内容
  • 3.常规操作
        • 增:
        • 删:
  • 4.发布后运行就崩溃的问题
简介

EPPlus插件下载地址: 链接:https://pan.baidu.com/s/11Ye8EhEBpgwZD-7YIUVajA 提取码:ivlm

本案例使用unity版本:unity2017.2.1f1 编程工具:VS2017

下载插件后解压,将文件夹复制到项目工程文件中Plugins文件夹中。

在这里插入图片描述

1.创建Excel及写入数据

新建脚本命名为:ExcelOperate,并将脚本挂在到场景摄像机上,打开脚本文件。 引入插件及文件操作常用命名空间: using OfficeOpenXml; using System.IO;

创建及写入Excel的方法

void CreateExcel() { string outPutDir = Application.dataPath+ "\\" + "MyExcel.xls"; FileInfo newFile = new FileInfo(outPutDir); if ( newFile.Exists ) { newFile.Delete(); // ensures we create a new workbook  Debug.Log("删除表"); newFile = new FileInfo(outPutDir); } using ( ExcelPackage package = new ExcelPackage(newFile) ) { ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("我的Excel"); worksheet.Cells[1, 1].Value = "序号"; worksheet.Cells[1, 2].Value = "姓名"; worksheet.Cells[1, 3].Value = "电话"; package.Save(); Debug.Log("导出Excel成功"); } } 

将 CreateExcel()方法中Start()方法中调用,运行场景后在Assets文件夹下创建了名为MyExcel的Excel文件,在控制台打印出“导出Excel成功”。如图 在这里插入图片描述 创建Excel文件成功! 在这里插入图片描述

2.读取Elxcel中的内容

读取Excel的方法

void ReadExcel() { string outPutDir = Application.dataPath + "\\" + "MyExcel.xls"; using ( ExcelPackage package = new ExcelPackage(new FileStream(outPutDir, FileMode.Open)) ) { for ( int i = 1; i <= package.Workbook.Worksheets.Count; ++i ) { ExcelWorksheet sheet = package.Workbook.Worksheets[i]; for ( int j = sheet.Dimension.Start.Column, k = sheet.Dimension.End.Column; j <= k; j++ ) { for ( int m = sheet.Dimension.Start.Row, n = sheet.Dimension.End.Row; m <= n; m++ ) { string str = sheet.GetValue(m, j).ToString(); if ( str != null ) { // do something Debug.Log(str); } } } } } } 

使用Start()方法调用 ReadExcel()方法。因为已经创建了MyExcel,可以暂时将CreateExcel()注释掉。运行程序,在控制台中打印出从MyExcel中的读取的数据。 在这里插入图片描述

3.常规操作 增:

两种写法 ①

//添加数据到表里  int row = sheet.Dimension.End.Row + 1; print(row); sheet.Cells["A" + row.ToString()].Value = nickname; sheet.Cells["B" + row.ToString()].Value = openid; sheet.Cells["C" + row.ToString()].Value = headimgurl; sheet.Cells["D" + row.ToString()].Value = addtime; sheet.Cells["E" + row.ToString()].Value = num; 

//添加数据到表里  sheet.Cells[row, 1].Value = nickname; sheet.Cells[row, 2].Value = openid; sheet.Cells[row, 3].Value = headimgurl; sheet.Cells[row, 4].Value = addtime; sheet.Cells[row, 5].Value = num; 
删:
//删除指定行  sheet.DeleteRow(j); //删除除了第一行的所有行  print("总行数:"+ sheet.Dimension.End.Row); for (int j = sheet.Dimension.End.Row; j >=2; j--) { print("删除:" + sheet.GetValue(j, 1).ToString()); sheet.DeleteRow(j); } 

改跟增一样,直接给对应行列的单元赋值

第2步中的操作就是查

4.发布后运行就崩溃的问题

今天遇到令人头疼的问题,在编辑器里运行正常,打包出来以后运行就崩溃,百思不得其解。后来终于找到答案了,这大概是unity操作excel时很常见的一个问题, 解决方案:到unity编辑器所在路径中去找这个路径 \Editor\Data\MonoBleedingEdge\lib\mono\unityaot 或者 unityjit 文件夹 找到里边以”I18N“开头的这四个dll文件 在这里插入图片描述 复制到你的工程目录中的Plughs文件夹下即可

参考文章:【完美解决】Unity发布PC端的exe后,加载2007以后的Excel大坑 Standalone excel 鸣谢!

关注
打赏
1688896170
查看更多评论

暂无认证

  • 6浏览

    0关注

    115984博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0511s