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格式。

屏幕快照 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值