using Excel; using System.Collections; using System.Collections.Generic; using System.Data; using System.IO; public class ExcelTool { public static List ReadLanguageData(string ExcelPath, string sheetName) { DataRowCollection collect = ReadExcel(ExcelPath, sheetName); List items = new List(); for (int i = 1; i < collect.Count; i++) { if (string.IsNullOrEmpty(collect[i][0].ToString())) continue; LanguageData item = new LanguageData { name = string.IsNullOrEmpty(collect[i][MultiLanguageConfigIndex.name].ToString()) ? "Null" : collect[i][MultiLanguageConfigIndex.name].ToString(), content = MultLanguageAdd(collect[i], MultiLanguageConfigIndex.en, (int)LanguageType.Count), }; items.Add(item); } return items; } private static List MultLanguageAdd(DataRow dataRow, int min, int max) { List addition = new List(); for (int i = min; i <= max; i++) { addition.Add(new LanguageContent(dataRow[i].ToString(), (LanguageType)i)); } return addition; } private static DataRowCollection ReadExcel(string excelPath, string sheetName) { FileStream stream = File.Open(excelPath, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite); IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream); DataSet result = excelReader.AsDataSet(); return result.Tables[sheetName].Rows; } }