[Unity对Excel的读取]
来源:互联网 发布:华为p7手机壳淘宝 编辑:程序博客网 时间:2024/05/21 20:24
做项目突然想优化一下数据的输入方式,并不想用代码一行一行的插入,感觉很low。
于是就想到用excel来做,先把数据写好在excel中,然后来个批导入,一个foreach就能把数据读到我们要维护的数据结构里。
废话不多说,来看看怎么做。首先你得去Excel的官网下载他的动态链接库:一个Excel.dll,一个ICSharpCode.SharpZipLib.dll,然后放在项目目录下,最好是在plugins下。
当然,这是你会注意到还有一个叫做system.data的东西,没错这也是需要我们去弄的dll.
不过这个dll不需要下载,这属于.net自带的东西,Unity的源目录就有,这里就不得不吐槽一下Unity,讲道理这个应该直接添加依赖就可以了,但是会出现一个找不到名称空间的bug,anyway,在他的原目录下ctrl+f找一下,把这个dll也要拷到工程目录下。
好的接下来就是上代码了。
首先是名称空间的引用:
using UnityEngine;using System.Collections;using Excel;using System.Data;using System.IO;using System.Collections.Generic;接着你需要定义一个自己的结构,这个取决于你的excel表到底放了些啥,我的excel表每行只有两个属性,所以我定义了:
public struct DepenceTableData{public string word;public string instruct;};接着我们首先读取文件变成一个dataset型的变量:
static DataSet ReadExcel(string path) { FileStream stream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.Read); IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream); DataSet result = excelReader.AsDataSet(); return result; }接着对于我们比较主要的属性是dataset下的table[0],这里记录着真正的数据,以及一些总行数,总列数的信息:
public static List<DepenceTableData> Load(string path){List<DepenceTableData> _data = new List<DepenceTableData> ();DataSet resultds = ReadExcel (path);int columns = resultds.Tables[0].Columns.Count;int rows = resultds.Tables[0].Rows.Count;for (int i = 1; i < rows; i++){DepenceTableData temp_data;temp_data.instruct = resultds.Tables [0].Rows [i] [0].ToString();temp_data.word = resultds.Tables [0].Rows [i] [1].ToString ();_data.Add (temp_data);}return _data;}
.rows后面这个索引就可以按二维数组来理解了。
效果图:
这是我的excel:
接着是把链表往控台写了写:
没截图完,但可以看出所有信息输出了。
0 0
- [Unity对Excel的读取]
- Unity读取Excel数据
- Perl中对Excel的读取处理
- Java对Excel的读取操作
- Java对Excel文件的读取
- Java对Excel文件的读取--后续
- java 对Excel的读取和写入
- Workbook POI 对Excel表格的读取
- java对excel的创建,读取,复制
- python 对excel中数据的读取
- Unity读取Excel方法总结
- Unity读取Excel数据遇到的各种bug
- 在unity中读取Excel的xlsx格式文件
- C#对word、excel读取
- java 中 用xml 对excel的读取,与创建
- 终于完成了ADO对Excel的逐行读取
- 对Excel表的操作(读取,更新,创建)
- POI对Excel自定义日期格式的读取
- MAC上mysql中文乱码解决方案(亲测可用)
- 1051. 复数乘法 (15)
- 反射
- FILE结构体与fd文件标识符
- 回溯法之N皇后问题
- [Unity对Excel的读取]
- java面试题之static和final
- matlab求解 非线性规划
- 关于UIAlertActionStyle的一些知识点
- Spring 注解配置(annotation-config 和 component-scan的不同)
- 1052. 卖个萌 (20)
- 1053. 住房空置率 (20)
- 如何安装nginx且使用反向代理
- 点击文本框阻止出现搜索记录