Unity 读取Excel

游戏有大多数配置文件,比如玩家等级,游戏商店信息等等.通常情况下把这些放入excel中来读取

第一种解决方案:

xlsx –> csv –> 改变成UTF-8 或者Unicode编码 –> 修改后缀名成.txt  -> 通过Resources.Load读取转换成TextAsset –> 通过,方式开区分开来

转换成csv(软件采用notepad++)

项目图:

using UnityEngine;
using System.Collections;
using System;
using System.Collections.Generic;
using System.Text;

public class Test : MonoBehaviour {

    private string[] lineArray;
    private CSVTable table;

    public void OnGUI()
    {
        if (GUI.Button(new Rect(0, 0, 100, 100), "读取Excel"))
        {
            TextAsset text = (TextAsset)Resources.Load("data", typeof(TextAsset));
            lineArray = text.text.Split("\r"[0]);

            table = new CSVTable();
            for (int i = 0; i < lineArray.Length; i++)
            {
                table.AddRow(lineArray[i]);
            }

            //输出每行的信息
            for (int i = 0; i < table.rows.Count; i++)
            {
                Debug.Log(table.rows[i].ToString());
            }

            Debug.Log("==========================");

            //还是输出每行的信息
            for (int i = 0; i < table.rows.Count; i++)
            {
                Debug.Log(table.rows[i][0] + "-" + table.rows[i][1]);

            }

            #region 信息输出
            /*
            string[] row;
            string info = string.Empty;
            for (int j = 0; j < lineArray.Length; j++)
            {
                row = lineArray[j].Split(‘,‘);
                for (int i = 0; i < row.Length; i++)
                {
                    info += "-" + row[i];
                }

                info = info.TrimStart(‘-‘);
                Debug.Log(info);
                info = string.Empty;
            }*/
            #endregion

        }
    }

}

/// <summary>
/// 表示一行
/// </summary>
public struct Row
{
    public string rowText;
    public List<Coll> colls;

    public Row(string line)
    {
        rowText = line;
        string [] tempColls = line.Split(‘,‘);

        colls = new List<Coll>();
        for (int i = 0; i < tempColls.Length; i++)
        {
            colls.Add(new Coll(tempColls[i]));
        }
    }

    public string GetCell(int index)
    {
        return colls[index].ToString();
    }

    public string ToString()
    {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < colls.Count; i++)
        {
            sb.Append("-" + colls[i].ToString());

        }
        //去掉最后的"-"
        return sb.ToString().TrimStart(‘-‘);
    }

    /// <summary>
    /// 让结构可以直接[下标值] 来获取或设置 单元格的字符串
    /// </summary>
    /// <param name="index"></param>
    /// <returns></returns>
    public string this[int index]
    {
        get
        {
            return colls[index].ToString();
        }
        set
        {
            this.colls[index].SetText(value);
        }
    }

}

/// <summary>
/// 每一个单元格
/// </summary>
public struct Coll
{
    public string cellText;

    public Coll(string cell)
    {
        cellText = cell;
    }

    /// <summary>
    /// 写一个ToString()方便获取字符串
    /// </summary>
    /// <returns></returns>
    public string ToString()
    {
        return cellText;
    }

    /// <summary>
    /// 设置单元格的字符串
    /// </summary>
    /// <param name="text"></param>
    public void SetText(string text)
    {
        cellText = text;
    }

}

/// <summary>
/// 一张表
/// </summary>
public struct CSVTable
{
    /// <summary>
    /// 行集合
    /// </summary>
    public List<Row> rows;

    /// <summary>
    /// 增加一行数据
    /// </summary>
    /// <param name="line">以","分割的一行文本</param>
    public void AddRow(string line)
    {
        if (rows == null)
        {
            rows = new List<Row>();
        }
        rows.Add(new Row(line));
    }

}
时间: 2024-07-29 11:05:52

Unity 读取Excel的相关文章

Unity读取Excel文件(附源代码)

今天想弄个Unity读取Excel的功能的,发现网上有许多方法,采用其中一种方法:加入库文件 Excel.dll 和ICSharpCode.SharpZipLib.dll库文件,(还有System.Data.dll也要拷贝进来,在Unity安装路径C:\Program Files\Unity\Editor\Data\Mono\lib\mono\unity中),代码下载链接在最后. 使用时要注意1997-2003和2007版本的脚本不一样: 然后编写脚本DoExcel.cs: using Syst

C#窗体读取EXCEL并存入SQL数据库的方法

本文实例讲述了C#窗体读取EXCEL并存入SQL数据库的方法.分享给大家供大家参考.具体实现方法如下: windows窗体上放了一个Textbox1,2个按钮button1和button2~按button1选择excel文件~按button2进行相关处理 代码如下: private  void button1_click(object sendeer,EventArgs e) { OpenFileDialog  openFiledialog1=new OpenFileDialog(); open

myBatis中的注解@Param、返回值为Map、JAVA读取Excel并解析文本、Class.getResource()和ClassLoader.getResource()

myBatis中的注解@Param:http://blog.csdn.net/gao36951/article/details/44258217:  http://www.cnblogs.com/thomas12112406/p/6217211.html. myBatis返回值为Map:http://blog.csdn.net/werewr342352321df/article/details/11892755. ====================== JAVA读取Excel并解析文本:h

java无依赖读取Excel文件

说到Java读取Excel文件,用得多的当然是POI或jxls,但今天在看一本书的时候.当中提到使用JdbcOdbcDriver这个驱动类在不依赖第三方库的情况下也能够完毕对Excel文件的读取操作,网上搜了一下原因然后自己写了个样例跑通了,在此记录一下. Java读取数据库大家都非常熟悉,须要一个数据源与对应的驱动.开发人员通过JDBC操作驱动.驱动再去操作数据库.那么Java读取Excel文件也是类似的.在Windows系统中,能够将一个Excel文件注冊为一个ODBC数据源,注冊过程为:

java读取Excel文件

package 读取excel; /* *导入jxl包,注意不能读取最新版本的Excel文件 */ import java.io.File;    import java.io.FileInputStream;     import java.io.InputStream;    import jxl.Cell; import jxl.CellType;    import jxl.Sheet;    import jxl.Workbook;    import jxl.write.Label;

Java 读取Excel格式xls、xlsx数据工具类

需要POI的jar包支持 调用方式: ReadExcelTest excelTest = new ReadExcelTest(); excelTest.readExcel("D:\\data1.xlsx"); package com.util; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; imp

使用Apache下poi创建和读取excel文件

一:使用apache下poi创建excel文档 1 @Test 2 /* 3 * 使用Apache poi创建excel文件 4 */ 5 public void testCreateExcel() { 6 // 1:创建一个excel文档 7 HSSFWorkbook workbook = new HSSFWorkbook(); 8 // 2:创建一个sheet工作表,名为“学生成绩” 9 HSSFSheet sheet = workbook.createSheet("学生成绩");

PHPExcel读取excel文件示例

PHPExcel的类库下载地址:  https://github.com/PHPOffice/PHPExcel 转载自: http://www.imhdr.com/1332/comment-page-1/ PHPExcel是一个非常方便生成Excel格式文件的类,官方下载包中带有大量如何生成各种样式excel文件的示例,但没有一个读取Excel文件的完整例子.Xiaoqiang根据网上的资料,整理了一份简单读取Excel文件的例子.传统方法: <?php /** * * @copyright 2

R中读取EXCEL 数据的方法

最近初学R语言,在R语言读入EXCEL数据格式文件的问题上遇到了困难,经过在网上搜索解决了这一问题,下面归纳几种方法,供大家分享: 第一:R中读取excel文件中的数据的路径: 假定在您的电脑有一个excel文件,原始的文件路径是:D:\work\data\1 如果直接把这个路径拷贝到R中,就会出现错误,原因是: \是escape character(转义符),\\才是真正的\字符,或者用/ 因此,在R中有两种方法读取该路径: 1:在R中输入一下路径:D:\\work\\data\\1