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(, , , ), "读取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的更多相关文章
- Unity读取Excel文件(附源代码)
今天想弄个Unity读取Excel的功能的,发现网上有许多方法,采用其中一种方法:加入库文件 Excel.dll 和ICSharpCode.SharpZipLib.dll库文件,(还有System.D ...
- unity 读取excel表 生成asset资源文件
做unity 项目也有一段时间了,从unity项目开发和学习中也遇到了很多坑,并且也从中学习到了很多曾经未接触的领域.项目中的很多功能模块,从今天开始把自己的思路和代码奉上给学渣们作为一份学习的资料. ...
- Unity用Excel.dll简单读取Excel内容
Unity用Excel.dll简单读取Excel内容 需要Excel.dll 需要如下三个命名空间 using System.IO; using Excel; using System.Data; 1 ...
- java的poi技术读取Excel数据到MySQL
这篇blog是介绍java中的poi技术读取Excel数据,然后保存到MySQL数据中. 你也可以在 : java的poi技术读取和导入Excel了解到写入Excel的方法信息 使用JXL技术可以在 ...
- poi读取excel模板,填充内容并导出,支持导出2007支持公式自动计算
/** * 版权所有(C) 2016 * @author www.xiongge.club * @date 2016-12-7 上午10:03:29 */ package xlsx; /** * @C ...
- C#读取Excel,或者多个excel表,返回dataset
把excel 表作为一个数据源进行读取 /// <summary> /// 读取Excel单个Sheet /// </summary> /// <param name=& ...
- PHP读取EXCEL时间
在使用php读取excel表格中的时间时得到一串数字而不是时间:40359.58333333334 excel 中的时间值是自1900年以来的天数,注意是格林威治时间php 中的时间值是自1970年以 ...
- Open Xml 读取Excel中的图片
在我的一个项目中,需要分析客户提供的Excel, 读出其中的图片信息(显示在Excel的第几行,第几列,以及图片本身). 网络上有许多使用Open Xml插入图片到Word,Excel的文章, 但 ...
- 使用Open xml 操作Excel系列之一-读取Excel
一. 安装Open Xml SDK 从微软网站下载Open xml SDK,安装SDK. 二. 在项目中添加对DocumentFormat.OpenXml库的引用
随机推荐
- WebFrom模拟MVC
如: aspx前台 这样写生成页面时不会产生新的html标签,用控件则会产生新的html标签 <h1><%= title %></h1> <p> ...
- PHP性能优化学习笔记--PHP周边性能优化--来自慕课网Pangee http://www.imooc.com/learn/205
PHP一般运行于Linux服务器中,周边主要包括:Linux运行环境.文件存储.数据库.缓存.网络 常见PHP场景的开销次序: 读写内存<<读写数据库(使用内存作为缓存.异步处理)< ...
- Ajax发送Post请求
Ajax发送post请求与发送get请求大致类似.以下看详细实例.首先看JSP显示页面: <form action="servlet/LoginServlet" method ...
- [置顶] Application,Session,Cookie之Application对象
概述 Application为全局作用域,且只有一个Application对象,它可以存储和访问任意页面的变量(数据存储类型都是Object,也就是任意类型),同时也被多页面使用(也为引用). App ...
- 谈谈UIView的几个layout方法-layoutSubviews、layoutIfNeeded、setNeedsLayout...
最近在学习swift做动画,用到constraint的动画,用到layoutIfNeeded就去研究了下UIView的这几个布局的方法. 下面是做得一个动画,下载地址:https://github.c ...
- iOS开发CoreAnimation解读之三——几种常用Layer的使用解析
iOS开发CoreAnimation解读之三——几种常用Layer的使用解析 一.CAEmitterLayer 二.CAGradientLayer 三.CAReplicatorLayer 四.CASh ...
- Android系统的智能指针(轻量级指针、强指针和弱指针)的实现原理分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6786239 Android 系统的运行时库层代 ...
- NET中级课--文件,流,序列化3
1.序列化:将对象及状态保存起来. 反序列化就是逆操作. 2.NET提供了一个接口:System.runtime.serialization.IFormatter接口, 还有实现了这个接口的类Bina ...
- 面试前的准备---C#知识点回顾----04
播下的种子,慢慢开始发芽收获了,陆陆续续offer就来了,该轮到我挑的时候了 今天面试的一家公司,技术问的相对宽广和细致,程度令人发指 1.谈谈ViewState 这个问题,回答的好,工资翻一级 基本 ...
- parseInt引发的血案
今天做了个专题活动,页面头上有个倒计时 专题做完后上线了,没发现有什么问题,结果,运营MM突然和我说:技术哥哥出问题了,360浏览器在秒数从10到09的时候直接变成 00 了! 一看我去真的,该死的3 ...