Я получаю данные из файлов Excel с библиотекой EPPlus.DataExtractor
:
private static async Task addComptInformation(string codePoste, Poste currentPoste)
{
var stream = await comptFile.OpenStreamForReadAsync();
using (var p = new ExcelPackage(stream))
{
// get the first worksheet in the workbook
ExcelWorksheet worksheet = p.Workbook.Worksheets[0];
var endRow = worksheet.Dimension.End.Row;
var data = worksheet.Extract<Compteur>()
.WithProperty(c => c.TablRL, "A")//
.WithProperty(c => c.Charge, "A")//
.WithProperty(c => c.Energie, "A")//
.WithProperty(c => c.FactMult, "W")
.WithProperty(c => c.Type, "U")
.WithProperty(c => c.NumSerie, "T")
.WithProperty(c => c.CodePoste, "C")
.GetData(5, endRow).ToList();
foreach (Compteur c1 in data)
{
if (c1.CodePoste != null && c1.CodePoste.Equals(codePoste))
{
currentPoste.Compteurs.Add(c1);
}
}
}
}
Как вы можете видеть, я получаю каждую строку моего файла Excel и преобразую ее в список Compteur
объектов, после чего я использую этот список, чтобы только несколько экземпляров соответствовали CodePoste
.
Это не совсем оптимизировано, и я понятия не имею, как это сделать лучше.
Есть ли способ просто извлечь правильные строки в файлах Excel и преобразовать только эти строки в Compteur
объект?