UD4SL3——Excel数据读取
本章代码关键字
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| IExcelDataReader ExcelReaderFactory.CreateOpenXmlReader() DataSet iExcelDataReader.AsDataSet()
dataSet.Tables dataSet.Tables[i].TableName dataSet.Tables[i].Rows dataSet.Tables[i].Rows[i] dataSet.Tables[i].Rows.Count dataSet.Tables[i].Columns dataSet.Tables[i].Columns.Count
dataTable.Columns dataTable.Rows dataTable.Columns
DataRow dataRow[i]
|
打开Excel表
主要知识点:
-
FileStream
读取文件流
-
IExcelDataReader
类,从流中读取Excel
数据
-
DataSet
数据集合类 将Excel
数据转存进其中方便读取
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| [MenuItem("GameTool/打开Excel表")] private static void OpenExcel() { using (FileStream fileStream = File.Open(Application.dataPath + "/ArtRes/Excel/PlayerInfo.xlsx", FileMode.Open, FileAccess.Read)) { IExcelDataReader iExcelDataReader = ExcelReaderFactory.CreateOpenXmlReader(fileStream); DataSet dataSet = iExcelDataReader.AsDataSet(); for (int i = 0; i < dataSet.Tables.Count; i++) { Debug.Log("表名:" + dataSet.Tables[i].TableName); Debug.Log("行数:" + dataSet.Tables[i].Rows.Count); Debug.Log("列数:" + dataSet.Tables[i].Columns.Count); } fileStream.Close(); } }
|
获取Excel表中单元格的信息
主要知识点:
-
FileStream
读取文件流
-
IExcelDataReader
类,从流中读取Excel数据
-
DataSet
数据集合类 将Excel数据转存进其中方便读取
-
DataTable
数据表类 表示Excel文件中的一个表
-
DataRow
数据行类 表示某张表中的一行数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| [MenuItem("GameTool/读取Excel的具体信息")] private static void ReadExcel() { using (FileStream fileStream = File.Open(Application.dataPath + "/ArtRes/Excel/PlayerInfo.xlsx", FileMode.Open, FileAccess.Read)) { IExcelDataReader iExcelDataReader = ExcelReaderFactory.CreateOpenXmlReader(fileStream); DataSet dataSet = iExcelDataReader.AsDataSet(); for (int i = 0; i < dataSet.Tables.Count; i++) { DataTable dataTable = dataSet.Tables[i]; DataRow row; for (int j = 0; j < dataTable.Rows.Count; j++) { row = dataTable.Rows[j]; Debug.Log("------------------新的一行------------------"); for (int k = 0; k < dataTable.Columns.Count; k++) { Debug.Log(row[k].ToString()); } } } fileStream.Close(); } }
|
获取Excel表中信息对于我们的意义
既然我们能够获取到Excel表中的所有数据
那么我们可以根据表中数据来动态的生成相关数据
- 数据结构类
- 容器类
- 2进制数据
为什么不直接读取Excel表而要把它转成2进制数据
- 提升读取效率
- 提升数据安全性