1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- using System.IO;
- using UnityEditor;
- using UnityEngine;
- using System.Data;
- using GFGEditor;
- using OfficeOpenXml;
- namespace GFGEditor
- {
- public class ExcelReader
- {
- public delegate void RowCollectionHandler(ExcelWorksheet rowCollection, string configName, string configArrayName);
- public static void ReadExcel(RowCollectionHandler rowCollectionHandler)
- {
- string[] files = Directory.GetFiles(ExcelConfig.excelsFolderPath);
- int totalCount = files.Length;
- for (int i = 0; i < totalCount; i++)
- {
- string filePath = files[i];
- string fileName = Path.GetFileNameWithoutExtension(filePath);
- if(!fileName.Contains("~"))
- {
- ET.Log.Debug($"fileName {fileName}");
- Stream stream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);
- ExcelPackage excelPackage = new ExcelPackage(stream);
- //IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
- //DataSet result = excelReader.AsDataSet();
-
- HandleTableCollection(excelPackage.Workbook.Worksheets, rowCollectionHandler);
- }
- }
- }
- private static void HandleTableCollection(ExcelWorksheets Worksheets, RowCollectionHandler rowCollectionHandler)
- {
- for (int i = 1; i <= Worksheets.Count; i++)
- {
- ExcelWorksheet worksheet = Worksheets[i];
- HandleTable(worksheet, rowCollectionHandler);
- }
- }
- private static void HandleTable(ExcelWorksheet worksheet, RowCollectionHandler rowCollectionHandler)
- {
- string[] names = worksheet.Name.Split('_');
- if (names.Length < 2)
- {
- //未正确命名的表格
- return;
- }
- if (worksheet.Name.Contains("#"))
- {
- //被注释的表格
- return;
- }
- string configItemName = names[1];
- string managerTag = "";
- if (names.Length > 2)
- {
- managerTag = names[2];
- }
- //文件名及管理器名
- string configManagerName = string.Format(ExcelConfig.CONFIG_ARRAY_TEMPLATE, configItemName, managerTag);
-
- rowCollectionHandler(worksheet, configItemName, configManagerName);
- }
- }
- }
|