首页 > 其他分享 >unity读取Excel

unity读取Excel

时间:2023-01-05 13:39:56浏览次数:41  
标签:读取 Excel yg unity path using getnames string


使用unity5.6的和Excel是2016版本。

新建工程,新建文件夹Plugins,然后导入两个dll,一个是EXCEL一个system.Data。

 

unity读取Excel_List

 

读取脚本如下:

using System.Collections.Generic;
using UnityEngine;
using System.Data;
using System.IO;
using Excel;
public class DoExcel {

public static DataSet ReadExcel(string path)
{
FileStream stream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.Read);
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);

DataSet result = excelReader.AsDataSet();
excelReader.Close();
return result;

}

public static List<string> Load(string path)
{

DataSet resultds = ReadExcel(path);
int column = resultds.Tables[0].Columns.Count;
int row = resultds.Tables[0].Rows.Count;

Debug.Log("总行数:" + row+" 总列数:" +column);

List<string> saveall = new List<string>();

//获得每行的名字,并添加到数组里
for (int i=1;i< row; i++)
{
string getnames;
getnames = resultds.Tables[0].Rows[i][1].ToString();
Debug.Log("第"+i+"行:" + getnames.ToString());
saveall.Add(getnames.ToString());

}

return saveall;
}

}

只要调用上面代码里的Load(string path)方法就可以。

把要读取的Excel的路径作为参数传入即可。如下:

void Start()
{

string ak = System.Environment.CurrentDirectory;
print(ak);
//savename = DoExcel.Load(Application.dataPath + "\\Data\\" + "yg.xlsx");
savename = DoExcel.Load(ak + "\\yg.xlsx");

allsavedvalue = savename.Count;
}

在当前文件目录下存在名为yg的Excel表格

unity读取Excel_List_02

然后运行unity即可看到数据已经读取完成,输出了log

unity读取Excel_System_03

-------------注意一点,yg这个Excel表格里的第一行必须是string类型的--------如下:

unity读取Excel_System_04

如果第一行不是string会出现如下错误:就说类型是无法转化的。

unity读取Excel_List_05

 

标签:读取,Excel,yg,unity,path,using,getnames,string
From: https://blog.51cto.com/u_8378185/5990797

相关文章

  • Unity之使用Assetbundle更新视频文件
    承接之前讲过的Assetbundle的内容。这次要讲解更新游戏中的CG的视频案例。开发内容:点击按钮加载视频数据,按鼠标右键播放加载完成的视频。第一步,新建一个unity的场景。场景非......
  • unity之network客户端向服务器发送消息【Command】方法详解
    如果是纯粹是聊天室功能则可以使用NetworkView的方法来进行,简单实用。如果不是聊天室功能而是要传递数据给服务器,同时为了以后更多功能的拓展性,还是应该用networkmanager来......
  • Unity之NetworkView聊天室功能
    NetworkView是Unity封装的一套快速实现多人联机游戏的功能。以此为基础,我们可以开发各种类型的多人游戏,可以开发过关游戏的双人联机,也可以开发类似于CS的射击游戏,以房间为单......
  • unity之粒子碰撞触发方法
    需求是用水灭掉火焰。所以水的粒子要与火焰的粒子发生碰撞时执行灭火事件。效果如图: 首先从火焰角度思考:火焰的粒子要监测是否被撞到,所以要给它加上碰撞体。同时勾选collis......
  • Unity制作聊天室功能
    用untiy作客户端、用VS的控制台程序来做服务器。首先是服务器端的代码,分两个类一个Program,一个ForClient类。分别如下:usingSystem.Net.Sockets;usingSystem.Collections.......
  • unity的UI Event事件(Event Trigger和EventSystem对比)
    首先看Unity中UIEvent事件介绍上图中出现的组件在场景里都是unity里的事件相关的组件。例如:场景里EventSystem里默认就有Standaloneinputmodule这个组件(当然也可以随便加......
  • Unity3D之数据持久化储存
        首先我们来看两段Unity3D中实现数据读写的简单代码吧://保存数据PlayerPrefs.SetString("Name",mName);PlayerPrefs.SetInt("Age",mAge);PlayerPref......
  • Unity计时器功能
    在程序开发中很多地方会用到计时器进行倒计时的功能。下面我就写一个非常实用的倒计时功能。首先在场景中建一个Text用来显示倒计时的数值,然后给它加上倒计时的脚本Timer。......
  • Unity3D常用函数说明
    Unity3D中所有控制脚本的基类MonoBehaviour有一些虚函数用于绘制中事件的回调,也可以直接理解为事件函数,例如大家都很清楚的Start,Update等函数,以下做个总结。 Awake当前控......
  • Unity跳转场景报空指针解决
    当跳转场景时,有时候会出现空指针问题。解决办法:将即将跳转到的scene添加到BuildSettings里面。举个例子:例如从某个场景要跳转到network这个场景中,那么BuildSettings里面必......