| 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);        }    }}
 |