首页 > 解决方案 > 使用 EPPlus.DataExtractor 仅获取 Excel 文件中的正确行

问题描述

我正在使用EPPlus.DataExtractor库从 Excel 文件中获取数据:

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对象?

标签: c#uwpepplus

解决方案


推荐阅读