1. Prepare tres archivos antes de la clase, Excel.dll, ICSharpCode.SharpZipLib.dll, System.Data.dll,
Como se muestra en la imagen:
Dirección de descarga: Enlace: https://pan.baidu.com/s/1B2Sue9iw4qWzwjb1uJ6bPQ
Código de extracción: vkxk
2. Cree una carpeta de complementos en unity3d y arrastre tres archivos, como se muestra a continuación:
3. Cree un script de creación de objetos vacío, ReadExcel.cs, el código es el siguiente:
using UnityEngine;
using System.IO;
using Excel;
using System.Data;
public class ReadExcel : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
//1.打开文件,创建一个文件流操作对象
FileStream fileStream = new FileStream(Application.streamingAssetsPath+"/"+ "人物.xlsx", FileMode.Open,FileAccess.Read);
//2.创建一个excel读取类
IExcelDataReader reader = ExcelReaderFactory.CreateOpenXmlReader(fileStream);
//方法1:读取
while (reader.Read())
{
string name = reader.GetString(0);
string birth = reader.GetString(1);
string brief = reader.GetString(2);
Debug.Log("姓名:" + name + " --- " + "生卒:" + birth + " --- " + "简介:" + brief);
}
//方法2:读取
//DataSet result = reader.AsDataSet();
//获取行数
//int rows = result.Tables[0].Rows.Count;
//获取列数
//int column = result.Tables[0].Columns.Count;
//for (int i = 0; i < rows; i++)
//{
// 获取i行的第一列数据
// string name = result.Tables[0].Rows[i][0].ToString();
// 获取i行的第二列数据
// string birth = result.Tables[0].Rows[i][1].ToString();
// 获取i行的第三列数据
// string brief = result.Tables[0].Rows[i][2].ToString();
// Debug.Log("姓名:" + name + " --- " + "生卒:" + birth + " --- " + "简介:" + brief);
//}
}
}
4. Los resultados de los dos métodos son los siguientes:
5. Mencione el segundo método, el formato del documento excel debe ser .xlsx
6. Tenga en cuenta que si su versión de unity3d es 2019.4 y superior, debe agregar el archivo en Complementos; de lo contrario, los datos no se podrán leer en el archivo exe empaquetado.
7. Los archivos anteriores se pueden obtener del paquete de instalación de la versión correspondiente de unity3d D:\Program Files\Unity2019_4\Editor\Data\MonoBleedingEdge\lib\mono\unity