补充!!!优先看http://www.xuanyusong.com/archives/2429 我写的这一篇文章吧。。 可以直接解析excel 。
今天研究了一下Unity中解析Excel表格的操作。如果你是Windows下那么直接看这篇文章吧。
http://forum.unity3d.com/threads/57967-How-can-I-get-data-from-excel
这是一个老外写的,还有例子的下载地址。它基于ODBC来解析Excel表格,可是ODBC在MAC OS上是不支持的,为了在Mac OS 中也能解析Excel ,我想到了CSV。
Ok我来写一个简单的Excel表格,然后将它保存为csv格式。
csv会以逗号的间隔形式将数据分开。为了在Unity中使用,我们还需要修改一下它的文件格式为.txt。为了能显示中文还得修改一下文本的编码格式为UTF-8 或者 UTF-16 。在Mac上直接用Unitron 来修改编码格式吧。
好吧,下面我们来测试读取吧。 在Hierarchy视图中创建一个GUI Text对象,然后创建一条脚本给他挂上。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
using UnityEngine; using System.Collections; public class NewBehaviourScript : MonoBehaviour { void Start () { TextAsset binAsset = Resources.Load("csv", typeof(TextAsset)) as TextAsset; guiText.text = binAsset.text; } } |
为了方便使用我把csv.txt放在了Resources文件夹下面,如果没有你需要创建一个。 TextAsset 就可以来读取二进制文件了,然后直接将读取的内容显示出来。
csv将文本内容以分号的形式隔开。 其实我们可以将每个表组成一个二维数组,这样操作起来就非常方便。这时候我们需要安行类区分csv二进制的内容。 这里需要记住的是mac下换行符是”/r” 而windows下的换行符是”/n”
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
using UnityEngine; using System.Collections; public class NewBehaviourScript : MonoBehaviour { void Start () { //读取csv二进制文件 TextAsset binAsset = Resources.Load ("csv", typeof(TextAsset)) as TextAsset; //显示在GUITexture中 guiText.text = binAsset.text; //读取每一行的内容 string [] lineArray = binAsset.text.Split ("\r"[0]); //创建二维数组 string [][]Array = new string [lineArray.Length][]; //把csv中的数据储存在二位数组中 for(int i =0;i < lineArray.Length; i++) { Array[i] = lineArray[i].Split (";" [0]); } //通过索引即可得到数据内容 Debug.Log(Array[2][1]); } } |
如果你在程序中需要动态的读取这些数据,建议你在初始化中将csv的所有数据保存在一个全局的二维数组中。常驻内存中,当使用的时候只要调用这个二维数组即可。
在PC iOS android 平台下已经测过没有问题 最后是本文的下载地址:http://vdisk.weibo.com/s/x49QE
欢迎大家一起讨论学习,欢迎大家给我留言!加油,哇咔咔!!
- 本文固定链接: https://www.xuanyusong.com/archives/2192
- 转载请注明: 雨松MOMO 于 雨松MOMO程序研究院 发表
能修改么
推荐用EEPLUS
我是说能在这儿的代码里面修改,比如添加一行数据之类的
可以的,eeplus 这个库可以读写excel
en
大神,android上怎么读取excel啊,拜读过你的其他文章,里面的方法无法实现啊
不要在手机上直接读,, 你可以先把excel转成txt 运行时去读txt就行了
想问下这个直接转换为c#在mac上同样有效么?
https://github.com/cunkai/Unity-CSV-To-C-SharpUnity CSV转为C#文件 来省去解析csv的步骤,节省游戏加载时间。
请问,可以修改csv的数据么?
你好,在windows下 unity读取excel 中问没有问题, 程序发布之后 excel 的中文就乱码了是怎么回事? unity 中以设置了中文字体,excel 的编码改为了utf8 ,请大神指点!
额……英文不好是硬伤……在Window下解析Excel能否也简单介绍下啊……
真心希望,MOMO大神把这些技术弄到书上,您出的那本书差不多看了。还是这里的知识深,精。静待
跟我的做法完全一样
游戏开发中也会用到解析Excel哦? 转发了….O_O
我想请教您一下,怎么从某个链接或者程序,进入到appstore?
打开一个URL就可以。。