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

第一种解决方案:

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

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

项目图:

  1. using UnityEngine;
  2. using System.Collections;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Text;
  6.  
  7. public class Test : MonoBehaviour {
  8.  
  9. private string[] lineArray;
  10. private CSVTable table;
  11.  
  12. public void OnGUI()
  13. {
  14. if (GUI.Button(new Rect(, , , ), "读取Excel"))
  15. {
  16. TextAsset text = (TextAsset)Resources.Load("data", typeof(TextAsset));
  17. lineArray = text.text.Split("\r"[]);
  18.  
  19. table = new CSVTable();
  20. for (int i = ; i < lineArray.Length; i++)
  21. {
  22. table.AddRow(lineArray[i]);
  23. }
  24.  
  25. //输出每行的信息
  26. for (int i = ; i < table.rows.Count; i++)
  27. {
  28. Debug.Log(table.rows[i].ToString());
  29. }
  30.  
  31. Debug.Log("==========================");
  32.  
  33. //还是输出每行的信息
  34. for (int i = ; i < table.rows.Count; i++)
  35. {
  36. Debug.Log(table.rows[i][] + "-" + table.rows[i][]);
  37.  
  38. }
  39.  
  40. #region 信息输出
  41. /*
  42. string[] row;
  43. string info = string.Empty;
  44. for (int j = 0; j < lineArray.Length; j++)
  45. {
  46. row = lineArray[j].Split(',');
  47. for (int i = 0; i < row.Length; i++)
  48. {
  49. info += "-" + row[i];
  50. }
  51.  
  52. info = info.TrimStart('-');
  53. Debug.Log(info);
  54. info = string.Empty;
  55. }*/
  56. #endregion
  57.  
  58. }
  59. }
  60.  
  61. }
  62.  
  63. /// <summary>
  64. /// 表示一行
  65. /// </summary>
  66. public struct Row
  67. {
  68. public string rowText;
  69. public List<Coll> colls;
  70.  
  71. public Row(string line)
  72. {
  73. rowText = line;
  74. string [] tempColls = line.Split(',');
  75.  
  76. colls = new List<Coll>();
  77. for (int i = ; i < tempColls.Length; i++)
  78. {
  79. colls.Add(new Coll(tempColls[i]));
  80. }
  81. }
  82.  
  83. public string GetCell(int index)
  84. {
  85. return colls[index].ToString();
  86. }
  87.  
  88. public string ToString()
  89. {
  90. StringBuilder sb = new StringBuilder();
  91. for (int i = ; i < colls.Count; i++)
  92. {
  93. sb.Append("-" + colls[i].ToString());
  94.  
  95. }
  96. //去掉最后的"-"
  97. return sb.ToString().TrimStart('-');
  98. }
  99.  
  100. /// <summary>
  101. /// 让结构可以直接[下标值] 来获取或设置 单元格的字符串
  102. /// </summary>
  103. /// <param name="index"></param>
  104. /// <returns></returns>
  105. public string this[int index]
  106. {
  107. get
  108. {
  109. return colls[index].ToString();
  110. }
  111. set
  112. {
  113. this.colls[index].SetText(value);
  114. }
  115. }
  116.  
  117. }
  118.  
  119. /// <summary>
  120. /// 每一个单元格
  121. /// </summary>
  122. public struct Coll
  123. {
  124. public string cellText;
  125.  
  126. public Coll(string cell)
  127. {
  128. cellText = cell;
  129. }
  130.  
  131. /// <summary>
  132. /// 写一个ToString()方便获取字符串
  133. /// </summary>
  134. /// <returns></returns>
  135. public string ToString()
  136. {
  137. return cellText;
  138. }
  139.  
  140. /// <summary>
  141. /// 设置单元格的字符串
  142. /// </summary>
  143. /// <param name="text"></param>
  144. public void SetText(string text)
  145. {
  146. cellText = text;
  147. }
  148.  
  149. }
  150.  
  151. /// <summary>
  152. /// 一张表
  153. /// </summary>
  154. public struct CSVTable
  155. {
  156. /// <summary>
  157. /// 行集合
  158. /// </summary>
  159. public List<Row> rows;
  160.  
  161. /// <summary>
  162. /// 增加一行数据
  163. /// </summary>
  164. /// <param name="line">以","分割的一行文本</param>
  165. public void AddRow(string line)
  166. {
  167. if (rows == null)
  168. {
  169. rows = new List<Row>();
  170. }
  171. rows.Add(new Row(line));
  172. }
  173.  
  174. }

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. IO之内核buffer----"buffer cache"

    举例 一般情况下,Read,write系统调用并不直接访问磁盘.这两个系统调用仅仅是在用户空间和内核空间的buffer之间传递目标数据. 举个例子,下面的write系统调用仅仅是把3个字节从用户空间拷 ...

  2. Hibernate框架后续

    持久化对象的唯一标识OID 1:我们都知道,在java中按照内存地址来区分同一个类的不同对象        而关系数据库按照主键来区分一条记录 在Hibernate中使用OID来建立内存中的对象和数据 ...

  3. Subversion安装

    一.Subversion介绍 Subversion是一个集中式的信息共享系统.版本库是Subversion的核心部分,是数据的中央仓库.版本库以典型的文件和目录结构形式文件系统树来保存信息.任意数量的 ...

  4. root密码忘记后如何修改

    方法一: 1.在DOS窗口下输入net stop mysql5 或 net stop mysql 2.开一个DOS窗口,这个需要切换到mysql的bin目录.一般在bin目录里面创建一个批处理1.ba ...

  5. Java里多个Map的性能比較(TreeMap、HashMap、ConcurrentSkipListMap)

    问题 比較Java原生的 1.  TreeMap 2.  HashMap 3.  ConcurrentSkipListMap 3种Map的效率. 结果 模拟150W以内海量数据的插入和查找,通过添加和 ...

  6. Android-JNI编程-图文解析

    要想阅读并调试下文源码,首先要确保你的NDK环境是ok的:        编译环境:win7+Eclipse+ADT+SDK+NDK:基本用最新的就ok.        说明下,下文代码就是一个简单的 ...

  7. MFC获取当前时间

    获取按钮消息响应函数: void CTest17GetTimeDlg::OnGetTime() { // TODO: 在此添加控件通知处理程序代码 //UpdateData(true); CTime  ...

  8. RequireJs 深入理解

    原文   http://www.tuicool.com/articles/jam2Anv RequireJs已经流行很久了,我们在项目中也打算使用它.它提供了以下功能: 声明不同js文件之间的依赖 可 ...

  9. 触摸点为scrollview上的子控件时,scrollview不能滚动(iOS8)

    现象:在iOS8上,scrollview上面布局了多行多列的button,滑动scrollview,如果当触摸点是在按钮上,scrollview不能滚动. 例如: 解决方法:设置scrollview的 ...

  10. HTML5-常见的事件- beforeunload事件

    当我们在日常访问某些网站时,关闭当前网页时出现如下提示: beforeunload 事件就可以完成这样的事情,该事件发生时机:页面卸载之前,可以通过它来取消卸载并继续使用原有页面. 为了显示上面弹出对 ...