游戏有大多数配置文件,比如玩家等级,游戏商店信息等等.通常情况下把这些放入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(, , , ), "读取Excel"))
{
TextAsset text = (TextAsset)Resources.Load("data", typeof(TextAsset));
lineArray = text.text.Split("\r"[]); table = new CSVTable();
for (int i = ; i < lineArray.Length; i++)
{
table.AddRow(lineArray[i]);
} //输出每行的信息
for (int i = ; i < table.rows.Count; i++)
{
Debug.Log(table.rows[i].ToString());
} Debug.Log("=========================="); //还是输出每行的信息
for (int i = ; i < table.rows.Count; i++)
{
Debug.Log(table.rows[i][] + "-" + table.rows[i][]); } #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 = ; 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 = ; 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));
} }

Unity 读取Excel的更多相关文章

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

    今天想弄个Unity读取Excel的功能的,发现网上有许多方法,采用其中一种方法:加入库文件 Excel.dll 和ICSharpCode.SharpZipLib.dll库文件,(还有System.D ...

  2. unity 读取excel表 生成asset资源文件

    做unity 项目也有一段时间了,从unity项目开发和学习中也遇到了很多坑,并且也从中学习到了很多曾经未接触的领域.项目中的很多功能模块,从今天开始把自己的思路和代码奉上给学渣们作为一份学习的资料. ...

  3. Unity用Excel.dll简单读取Excel内容

    Unity用Excel.dll简单读取Excel内容 需要Excel.dll 需要如下三个命名空间 using System.IO; using Excel; using System.Data; 1 ...

  4. java的poi技术读取Excel数据到MySQL

    这篇blog是介绍java中的poi技术读取Excel数据,然后保存到MySQL数据中. 你也可以在 : java的poi技术读取和导入Excel了解到写入Excel的方法信息 使用JXL技术可以在 ...

  5. poi读取excel模板,填充内容并导出,支持导出2007支持公式自动计算

    /** * 版权所有(C) 2016 * @author www.xiongge.club * @date 2016-12-7 上午10:03:29 */ package xlsx; /** * @C ...

  6. C#读取Excel,或者多个excel表,返回dataset

    把excel 表作为一个数据源进行读取 /// <summary> /// 读取Excel单个Sheet /// </summary> /// <param name=& ...

  7. PHP读取EXCEL时间

    在使用php读取excel表格中的时间时得到一串数字而不是时间:40359.58333333334 excel 中的时间值是自1900年以来的天数,注意是格林威治时间php 中的时间值是自1970年以 ...

  8. Open Xml 读取Excel中的图片

      在我的一个项目中,需要分析客户提供的Excel, 读出其中的图片信息(显示在Excel的第几行,第几列,以及图片本身). 网络上有许多使用Open Xml插入图片到Word,Excel的文章, 但 ...

  9. 使用Open xml 操作Excel系列之一-读取Excel

    一. 安装Open Xml SDK 从微软网站下载Open xml SDK,安装SDK. 二. 在项目中添加对DocumentFormat.OpenXml库的引用

随机推荐

  1. ubuntu14.04 安装 StudioZend12

    到官网下载:http://www.zend.com/en/products/studio/downloadsLinux-64位:http://downloads.zend.com/studio-ecl ...

  2. HDU 1813 Escape from Tetris (IDA*)

    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1813 题意:给你一个n*n的迷宫,其中0代表有一个人在这个位置,1代表墙,现在要求一个路线,使所有的人通 ...

  3. BOOST 线程完全攻略 - 扩展 - 事务线程

    扩展threadtimermoduleexceptionsocket 什么叫事务线程 举个例子: 我们写一个IM客户端的登录子线程,则该子线程会有这么几个事务要处理 No.1 TCP Socket物理 ...

  4. Java中的编码格式

    Java中的编码 gbk编码 中文占用2个字节,英文占1个字节; utf-8编码 中文占用3个字节.,英文占用1个字节; Java是双字节编码 (utf-16be) utf -16be 中文占2个字节 ...

  5. [IDEA学习笔记][keymap]

    一个总站: http://www.youmeek.com/ 常用的快捷键keymap 提示: ctrl+N:快速打开一个类 Ctrl+P 方法参数提示显示 Ctrl+J 提示自定义模板 Ctrl+O ...

  6. last与lastlog命令

    lastlog 列出所有用户最后登录的时间和登录终端的地址,如果此用户从来没有登录,则显示:**Never logged in**last 列出用户所有的登录时间和登录终端的地址

  7. C#线程池ThreadPool的理解

    在多线程编程中,线程的创建和销毁是非常消耗系统资源的,因此,C#引入了池的概念,类似的还有数据库连接池,这样,维护一个池,池内维护的一些线程,需要的时候从池中取出来,不需要的时候放回去,这样就避免了重 ...

  8. UVA11401Triangle Counting(简单计数)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud 题目意思:从1,2,3,……,n中选出3个不同的整数使其构成一个三角形,有多少种方 ...

  9. (转)ubuntu下如何查看和设置分辨率

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5681159.html 原网址: http://www.2cto.com/os/201303/19397 ...

  10. SQL Server 2000/2005 分页SQL — 单条SQL语句

    有关分页 SQL 的资料很多,有的使用存储过程,有的使用游标.本人不喜欢使用游标,我觉得它耗资.效率低:使用存储过程是个不错的选择,因为存储过程是经过预编译的,执行效率高,也更灵活.先看看单条 SQL ...