excel 老外的方法

来源:互联网 发布:创造游戏的软件 编辑:程序博客网 时间:2024/04/28 16:50

今天研究了一下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格式。

屏幕快照 2013-04-10 下午5.44.38

 

csv会以逗号的间隔形式将数据分开。为了在Unity中使用,我们还需要修改一下它的文件格式为.txt。为了能显示中文还得修改一下文本的编码格式为UTF-8 或者 UTF-16 。在Mac上直接用Unitron  来修改编码格式吧。

 

屏幕快照 2013-04-10 下午5.52.03

 

好吧,下面我们来测试读取吧。 在Hierarchy视图中创建一个GUI Text对象,然后创建一条脚本给他挂上。

 

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 就可以来读取二进制文件了,然后直接将读取的内容显示出来。

 

屏幕快照 2013-04-10 下午6.00.20

 

csv将文本内容以分号的形式隔开。 其实我们可以将每个表组成一个二维数组,这样操作起来就非常方便。这时候我们需要安行类区分csv二进制的内容。 这里需要记住的是mac下换行符是”/r” 而windows下的换行符是”/n”

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

0 0
原创粉丝点击