乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > <em>unity</em>3d怎样读取<em>excel</em>

<em>unity</em>3d怎样读取<em>excel</em>

作者:乔山办公网日期:

返回目录:excel表格制作


using UnityEngine;
using System.Collections;
using System.Data.Odbc;
using System.Data;

public class TestTable : MonoBehaviour
{
private readonly string FILENAME = " TestTable.xls";

[System.Serializable]
public class TestInfo
{
public int id;
public string content;
}
public TestInfo[] testInfoList;

private bool tableReload = false;
public bool TableReload
{
set { tableReload = value; }
get { return tableReload; }
}

public void Load()
{
if (Application.platform == RuntimePlatform.WindowsEditor)
{
ReadInfo();
tableReload = true;
}
}

public void ReadInfo()
{
string fileName = PathForDocumentsFile("/Resources/Data/" + FILENAME);

string con = "Driver={Microsoft Excel Driver (*.xls)}; DriverId=790; Dbq=" + fileName +";"; // 必须保7a64e58685e5aeb9339存后缀名是.xls的文件
string query = "SELECT * FROM [Sheet1$]";
OdbcConnection oCon = new OdbcConnection(con);
OdbcCommand oCmd = new OdbcCommand(query, oCon);
DataTable dtData = new DataTable("MyData");
oCon.Open();
OdbcDataReader rData = oCmd.ExecuteReader();
dtData.Load(rData);
rData.Close();
oCon.Close();

int Count = 0;
for (int i = 0; i < dtData.Rows.Count; i++)
{
int Num = 0;
if (int.TryParse(dtData.Rows[i][0].ToString(), out Num))
{
Count++;
}
}

testInfoList = new TestInfo[Count];

for (int i = 0; i < dtData.Rows.Count; i++)
{
int Num = 0;
if (int.TryParse(dtData.Rows[i][0].ToString(), out Num))
{
TestInfo Info = new TestInfo();
Info.id = int.Parse(dtData.Rows[i][0].ToString());
Info.content = dtData.Rows[i][1].ToString();
testInfoList[i] = Info;
}
}
}

public int GetTotalCount()
{
return testInfoList.Length;
}

public TestInfo GetTestInfo(int id)
{
foreach (TestInfo Info in testInfoList)
{
if (Info.id == id) return Info;
}
return null;
}

public string PathForDocumentsFile(string fileName)
{
return Application.dataPath + fileName;
}
}

Unity可以读取Excel表格数据文件.xls或.xlsx。方法有:
1. 利用已有的 Unity Excel 插件,这个你到 Asset Store 上搜索 Excel 就能找到。或者在 这里下载
2. 利用第三方的操作 Excel 的 .NET 库,把 DLL 导入进 Unity 工程并调用它的功能。比如 ExcelDataReader、EPPlus
1 using UnityEngine;
2 using System.Collections;
3 using System;
4 using System.Collections.Generic;
5 using System.Linq;
6 using System.Text;
7 using System.Text.RegularExpressions;
8 using System.IO;
9 using Excel;
10 using System.Data;
11 using UnityEngine.UI;
12
13 public class NewBehaviourScript : MonoBehaviour
14 {
15 public Text readData;
16 void Start ()
17 {
18 XLSX();
19 }
20
21 void XLSX()
22 {
23 FileStream stream = File.Open(Application.dataPath + "/UserLevel.xlsx", FileMode.Open, FileAccess.Read);
24 IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
25
26 DataSet result = excelReader.AsDataSet();
27
28 int columns = result.Tables[0].Columns.Count;
29 int rows = result.Tables[0].Rows.Count;
30
31
32 for(int i = 0; i< rows; i++)
33 {
34 for (int j = 0; j < columns; j++)
35 {
36 string nvalue = result.Tables[0].Rows[i][j].ToString();
37 Debug.Log(nvalue);
38 if (i > 0)
39 {
40 readData.text += "\t\t" + nvalue;
41 }
42 else
43 {
44 readData.text +=" \t" + nvalue;
45 }
46 }
47 readData.text += "\n";
48 }
49 }
50
51 }

用记事本打开,另存为UTF-8。excel里存有时候不行

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网