遇到了需要读表格的需求,因为之前操作读取csv文件比较熟悉,本来也想把表格转成csv格式读取,但是实际操作过程中发现,表格中的内容是有逗号的,一整段文本里都有没有任何规律的逗号,而读csv文件格子间是用逗号分隔的,所以用这个方法会把一个格子里有逗号的文本分成几个部分,这不是我期望的。所以我查了下用unity直接读取xlsx表格的方法。在这儿记录下来。
using UnityEngine;using System.Collections;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Text.RegularExpressions;using System.IO;using Excel;using System.Data;public class ReadExcel:MonoBehaviour {public string ExcelPathName;void Start() {GameReadExcel(ExcelPathName);}/// <summary>/// 只读Excel方法/// </summary>/// <param name="ExcelPath"></param>/// <returns></returns>public static void GameReadExcel(string ExcelPath){FileStream stream = File.Open(Application.dataPath + ExcelPath, FileMode.Open, FileAccess.Read);IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);DataSet result = excelReader.AsDataSet();int columns = result.Tables[0].Columns.Count;//获取列数int rows = result.Tables[0].Rows.Count;//获取行数//从第二行开始读for (int i = 1; i < rows; i++){for (int j = 0; j < columns; j++){string nvalue = result.Tables[0].Rows[i][j].ToString();Debug.Log(nvalue);}}}}
其中需要注意的是这个需要引用
这几个封装好的dll,前面俩的官网下载地址:/
system.data.dll的路径在unity安装路径下的Editor\Data\Mono\lib\mono\unity 这个路径下