programing

ClosedX를 사용한 Excel 파일 읽기ML

newnotes 2023. 4. 20. 22:43
반응형

ClosedX를 사용한 Excel 파일 읽기ML

제 엑셀 파일은 표 형식으로 되어 있지 않습니다.엑셀 파일을 읽으려고 합니다.내 엑셀 파일에는 표 형식의 섹션이 있습니다.

표 형식의 3행에서 20행까지 반복하여 데이터를 읽어야 합니다.

코드명은 다음과 같습니다.

     string fileName = "C:\\Folder1\\Prev.xlsx";
     var workbook = new XLWorkbook(fileName);
     var ws1 = workbook.Worksheet(1); 

3 ~ 20 행을 루프하여 3, 4, 6, 7, 8 열을 읽으려면 어떻게 해야 합니까?또한 행이 비어 있는 경우 각 열에 지정된 행에 대한 값이 있는 것을 읽지 않고 건너뛸 수 있도록 하려면 어떻게 해야 합니까?

행에 액세스하려면:

var row = ws1.Row(3);

행이 비어 있는지 확인하려면:

bool empty = row.IsEmpty();

행의 셀(열)에 액세스하려면:

var cell = row.Cell(3);

셀에서 값을 가져오려면:

object value = cell.Value;
// or
string value = cell.GetValue<string>();

상세한 것에 대하여는, 메뉴얼을 참조해 주세요.

여기 제 잼이 있어요.

var rows = worksheet.RangeUsed().RowsUsed().Skip(1); // Skip header row
foreach (var row in rows)
{
    var rowNumber = row.RowNumber();
    // Process the row
}

그냥 사용하면.RowsUsed()범위에는 대량의 열이 포함됩니다.실제로 채워진 것보다 훨씬 더 많이!

사용방법.RangeUsed()범위를 제한합니다.이렇게 하면 파일을 더 빨리 처리할 수 있습니다.

를 사용할 수도 있습니다..Skip(1)컬럼 헤더 행(있는 경우)을 건너뜁니다).

이 솔루션이 OP의 문제를 해결할 수 있을지는 모르겠지만 Rows Used 방식을 사용하는 것이 좋습니다.비어 있지 않거나 사용자가 편집한 행 목록만 가져올 수 있습니다.이렇게 하면 각 행을 처리하는 동안 비어 있는지 확인할 수 있습니다.

아래 코드 조각은 비어 있지 않은 모든 행 중 3 ~ 20개의th 행 번호를 처리할rd 수 있습니다.빈 행을 필터링한 후foreach루프. 행 처리를 시작하기 전에 비어 있지 않은 행을 필터링하면 처리되는 행의 총 개수에 영향을 줄 수 있습니다.따라서 내부에서 처리되는 총 행 수를 기반으로 하는 논리를 적용할 때 주의해야 합니다.foreach고리.

string fileName = "C:\\Folder1\\Prev.xlsx";
using (var excelWorkbook = new XLWorkbook(fileName))
{
    var nonEmptyDataRows = excelWorkbook.Worksheet(1).RowsUsed();

    foreach (var dataRow in nonEmptyDataRows)
    {
       //for row number check
       if(dataRow.RowNumber() >=3 && dataRow.RowNumber() <= 20)
       {
           //to get column # 3's data
           var cell = dataRow.Cell(3).Value;
       }
    }
}

RowsUsed 메서드는 Excel 시트의 행을 처리해야 하는 일반적인 문제에 도움이 됩니다.

동작하기 쉽다

 XLWorkbook workbook = new XLWorkbook(FilePath);
 var rowCount = workbook.Worksheet(1).LastRowUsed().RowNumber();
 var columnCount = workbook.Worksheet(1).LastColumnUsed().ColumnNumber();
 int column = 1;
 int row = 1;
 List<string> ll = new List<string>();
 while (row <= rowCount)
 {
      while (column <= columnCount)
      {
         string title = workbook.Worksheets.Worksheet(1).Cell(row, column).GetString();
                ll.Add(title);
                column++;
       }

 row++;
 column = 1;
}

언급URL : https://stackoverflow.com/questions/29655498/reading-from-excel-file-using-closedxml

반응형