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库的引用
随机推荐
- IO之内核buffer----"buffer cache"
举例 一般情况下,Read,write系统调用并不直接访问磁盘.这两个系统调用仅仅是在用户空间和内核空间的buffer之间传递目标数据. 举个例子,下面的write系统调用仅仅是把3个字节从用户空间拷 ...
- Hibernate框架后续
持久化对象的唯一标识OID 1:我们都知道,在java中按照内存地址来区分同一个类的不同对象 而关系数据库按照主键来区分一条记录 在Hibernate中使用OID来建立内存中的对象和数据 ...
- Subversion安装
一.Subversion介绍 Subversion是一个集中式的信息共享系统.版本库是Subversion的核心部分,是数据的中央仓库.版本库以典型的文件和目录结构形式文件系统树来保存信息.任意数量的 ...
- root密码忘记后如何修改
方法一: 1.在DOS窗口下输入net stop mysql5 或 net stop mysql 2.开一个DOS窗口,这个需要切换到mysql的bin目录.一般在bin目录里面创建一个批处理1.ba ...
- Java里多个Map的性能比較(TreeMap、HashMap、ConcurrentSkipListMap)
问题 比較Java原生的 1. TreeMap 2. HashMap 3. ConcurrentSkipListMap 3种Map的效率. 结果 模拟150W以内海量数据的插入和查找,通过添加和 ...
- Android-JNI编程-图文解析
要想阅读并调试下文源码,首先要确保你的NDK环境是ok的: 编译环境:win7+Eclipse+ADT+SDK+NDK:基本用最新的就ok. 说明下,下文代码就是一个简单的 ...
- MFC获取当前时间
获取按钮消息响应函数: void CTest17GetTimeDlg::OnGetTime() { // TODO: 在此添加控件通知处理程序代码 //UpdateData(true); CTime ...
- RequireJs 深入理解
原文 http://www.tuicool.com/articles/jam2Anv RequireJs已经流行很久了,我们在项目中也打算使用它.它提供了以下功能: 声明不同js文件之间的依赖 可 ...
- 触摸点为scrollview上的子控件时,scrollview不能滚动(iOS8)
现象:在iOS8上,scrollview上面布局了多行多列的button,滑动scrollview,如果当触摸点是在按钮上,scrollview不能滚动. 例如: 解决方法:设置scrollview的 ...
- HTML5-常见的事件- beforeunload事件
当我们在日常访问某些网站时,关闭当前网页时出现如下提示: beforeunload 事件就可以完成这样的事情,该事件发生时机:页面卸载之前,可以通过它来取消卸载并继续使用原有页面. 为了显示上面弹出对 ...