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库的引用
随机推荐
- JAVA中的Formatter
package com.st.day20150525; import java.util.Formatter; public class StringTest02 { /** * %[argument ...
- Max Sum of Max-K-sub-sequence(单调队列)
Max Sum of Max-K-sub-sequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...
- xcode 执行时模拟器不可选的问题
好久没写博客了,上一次是什么时候都想不起来了. 之前总认为脑袋记住了,用过了就能够了,干嘛要写博客,简直浪费时间.事实上没事写写博客优点还是挺多的.这样既能够对自己用过的和学到的东西做一个总结,也能提 ...
- 利用Python进行数据分析——数据规整化:清理、转换、合并、重塑(七)(1)
数据分析和建模方面的大量编程工作都是用在数据准备上的:载入.清理.转换以及重塑.有时候,存放在文件或数据库中的数据并不能满足你的数据处理应用的要求.很多人都选择使用通用编程语言(如Python.Per ...
- BOOST 线程完全攻略 - 扩展 - 线程消息通讯
// controlled_module_ex.hpp : controlled_module类的扩展 // 增强线程之间消息通讯 // 增加线程安全启动和安全关闭功能 // 增加定时器功能 #p ...
- 07_DICTIONARY_ACCESSIBILITY
07_DICTIONARY_ACCESSIBILITY 控制对系统权限的限制: TRUE 有相应系统权限,允许访问SYS下的对象. FALSE 确保拥有可以访问任何对象的系统权限,但不可以访问SYS下 ...
- android——使用自带录屏工具进行屏幕录像
在做开源项目的时候,想传一个gif效果图上去.但是,要有连贯的动画效果.所以,就想到先录制视频,然后视频转gif.但是,用第三录屏软件总是不完美. 那么,怎么办呢? android4.4 提供了自带录 ...
- DOM生成&解析
开篇注意,由于解析有可能有大文件非常耗时,建议另开一个线程解析也可以不开具体视情况而定 DOM生成 1.拿到Document的工厂实例化 DocumentBuilderFactory df = ...
- .NET winform 的keypress事件中判断当用户按下的是哪个键
keys是按键的枚举类型 private void txtPropertyValue_KeyPress(object sender, KeyPressEventArgs e) { if ((Keys) ...
- Python学习笔记2(控制语句)
1.if条件语句 if(表达式): 语句1 else: 语句2 2.if...elif...else判断语句 if(表达式1):语句1 elif(表达式2):语句2 ... elif(表达式n):语句 ...