[c#] epplus를 사용하여 Excel 테이블의 행을 반복하는 방법은 무엇입니까?


1 Answers

ExcelRange 로 전체 행을 ExcelRange LINQ에 대해 반복 또는 사용할 수있는 방법은 다음과 같습니다.

for (var rowNum = 1; rowNum <= sheet.Dimension.End.Row; rowNum++)
{
    var row = sheet.Cells[string.Format("{0}:{0}", rowNum)];
    // just an example, you want to know if all cells of this row are empty
    bool allEmpty = row.All(c => string.IsNullOrWhiteSpace(c.Text));
    if (allEmpty) continue; // skip this row
    // ...
}
Question

나는 epplus 엑셀 테이블에서 값을 읽으려고합니다.

이것은 내가 지금까지 가지고있는 것이다.

var fileInfo = new FileInfo(filename);
using(var excelPackage = new OfficeOpenXml.ExcelPackage(fileInfo))
{
    foreach (var sheet in excelPackage.Workbook.Worksheets)
    {
        foreach (ExcelTable table in sheet.Tables)
        {
             foreach(var row in table.Rows)  // <-- !!
             { ... }
        }
    }
}

그러나 ExcelTableColumns 속성 만 가질 수 있지만 Rows 속성은 예상하지 ExcelTable 때문에 지금 당황 스럽습니다. 라이브러리의 모든 객체에서 Rows 속성을 찾을 수 없습니다.

Row 행을 읽으면 테이블을 반복 할 수 있습니까?




epplus는 확실하지 않지만 LinqToExcel 을 사용하는 LinqToExcel 대한 빠른 제안을 할 것이라고 생각 LinqToExcel

var excel = new ExcelQueryFactory(excel);

var info = excel.Worksheet("Sheet1")
                .Select(z=> new
                     {
                      Name = row["Name"].Cast<string>(),
                      Age = row["Age"].Cast<int>(),
                     }).ToList();

너는 NuGet에서 그것을 얻을 수있다.

Install-Package LinqToExcel





Related