이 기사에서는 C#을 사용하여 Excel 파일의 빈 행과 열을 삭제하는 방법에 대해 설명합니다. 또한 빈 행과 열을 삭제하면서 참조를 자동으로 업데이트하는 방법(공식, 차트 및 표에 사용)을 설명합니다.

빈 행과 열을 제거하는 C# API

.NET용 Aspose.Cells는 .NET 응용 프로그램 내에서 Excel 파일을 만들고 처리할 수 있는 잘 알려진 스프레드시트 조작 API입니다. API를 사용하면 몇 줄의 코드로 Excel 파일의 빈 행과 열을 제거할 수 있습니다. API 바이너리를 다운로드하거나 NuGet을 사용하여 설치할 수 있습니다.

PM> Install-Package Aspose.Cells

C#을 사용하여 Excel에서 빈 행 삭제

다음은 C#을 사용하여 Excel에서 모든 빈 행을 삭제하는 단계입니다.

  • Workbook 개체를 사용하여 Excel 파일을 엽니다.
  • 빈 행이 있는 워크시트에 액세스합니다. 워크시트는 인덱스(0부터 시작) 또는 이름으로 액세스할 수 있습니다.
  • Cells.DeleteBlankRows() 메서드를 호출하여 데이터가 포함되지 않은 모든 빈 행을 삭제합니다.

다음 샘플 코드는 C#을 사용하여 Excel에서 빈 행을 제거하는 방법을 보여줍니다.

using Aspose.Cells;

// 기존 엑셀 파일을 엽니다.
Workbook wb = new Workbook("SampleInput.xlsx");

// 스프레드시트에서 워크시트 컬렉션을 가져옵니다.
WorksheetCollection sheets = wb.Worksheets;

// 인덱스별로 WorksheetCollection에서 첫 번째 Worksheet를 가져옵니다.
Worksheet sheet = sheets[0];
// 또는 이름으로.
// 워크시트 시트 = 시트["시트1"];

// 워크시트에서 빈 행을 삭제합니다.
sheet.Cells.DeleteBlankRows();

// 엑셀 파일을 저장합니다.
wb.Save("SampleOutput.xlsx");
빈 행 삭제

그림 1: 빈 행 삭제

Cells.DeleteBlankRows 메서드는 일종의 서식이 적용된 경우에도 빈 행을 제거합니다. 또한 데이터 아래의 서식이 지정된 빈 행을 제거합니다.

서식이 지정된 빈 행 삭제

그림 2: 서식이 지정된 빈 행 삭제

Excel 문서의 모든 워크시트에서 빈 행을 삭제하려면 다음 코드와 같이 WorksheetCollection을 반복하고 각 워크시트에서 DeleteBlankRows 메서드를 호출하기만 하면 됩니다.

// 기존 엑셀 파일을 엽니다.
Workbook workbook = new Workbook("SampleInput.xlsx");

// 워크시트를 반복합니다.
foreach (Worksheet sheet in workbook.Worksheets)
{
    // 워크시트에서 빈 행을 삭제합니다.
    sheet.Cells.DeleteBlankRows();
}

// 엑셀 파일을 저장합니다.
workbook.Save("SampleOutput.xlsx");

빈 행을 삭제하는 동안 자동으로 참조 업데이트

빈 행을 삭제하면 공식, 차트 및 표에서 참조가 손상될 수 있습니다. 예를 들어 두 번째 워크시트의 B2 셀에는 다음 그림과 같이 첫 번째 워크시트의 C3 셀을 참조하는 =Sheet1!C3 수식이 있습니다.

Sheet2의 셀은 Sheet1의 값을 참조합니다.

그림 3: Sheet2의 셀은 Sheet1의 값을 참조합니다.

Sheet1에서 빈 행을 제거하면 lima@gmail.com 값이 C1 셀로 이동합니다. 그러나 수식(=Sheet1!C3)은 업데이트되지 않으며 B2 셀에는 아래와 같이 잘못된 값이 포함됩니다.

빈 행을 제거한 후 셀 B2의 수식이 업데이트되지 않았습니다.

그림 4: 빈 행을 제거한 후 셀 B2의 수식이 업데이트되지 않았습니다.

DeleteOptions.UpdateReference 속성을 사용하여 이 문제를 방지하고 true로 설정할 수 있습니다. 빈 행을 삭제하는 동안 참조가 업데이트되도록 합니다. 다음 샘플 코드는 DeleteOptions.UpdateReference 속성을 사용하는 방법을 보여줍니다.

// 기존 엑셀 파일을 엽니다.
Workbook wb = new Workbook("SampleInput.xlsx");

// 스프레드시트에서 워크시트 컬렉션을 가져옵니다.
WorksheetCollection sheets = wb.Worksheets;

// 인덱스별로 WorksheetCollection에서 첫 번째 Worksheet를 가져옵니다.
Worksheet sheet = sheets[0];

// 이 옵션은 참조(공식, 차트)를 보장합니다.
// 빈 행을 삭제하는 동안 업데이트됩니다.
DeleteOptions options = new DeleteOptions();
options.UpdateReference = true;

// 워크시트에서 빈 행을 삭제합니다.
sheet.Cells.DeleteBlankRows(options);

// 엑셀 파일을 저장합니다.
wb.Save("SampleOutput.xlsx");

다음 이미지와 같이 수식이 업데이트되었으며 B2 셀에 유효한 값이 포함되어 있습니다.

수식이 업데이트되었으며 셀에 유효한 값이 있습니다.

그림 5: 수식이 업데이트되었으며 셀에 유효한 값이 포함되어 있습니다.

C#을 사용하여 Excel에서 빈 열 삭제

빈 열을 삭제하는 단계는 빈 행을 삭제하는 단계와 동일합니다. Cells.DeleteBlankColumns 메서드를 사용하여 데이터가 포함되지 않은 모든 빈 열을 삭제합니다. 다음 샘플 코드는 C#에서 빈 행과 열을 삭제하는 방법을 보여줍니다.

// 기존 엑셀 파일을 엽니다.
Workbook wb = new Workbook("SampleInput.xlsx");

// 스프레드시트에서 워크시트 컬렉션을 가져옵니다.
WorksheetCollection sheets = wb.Worksheets;

// 인덱스별로 WorksheetCollection에서 첫 번째 Worksheet를 가져옵니다.
Worksheet sheet = sheets[0];

// 이 옵션은 참조(공식, 차트)를 보장합니다.
// 빈 행과 열을 삭제하는 동안 업데이트됩니다.
DeleteOptions options = new DeleteOptions();
options.UpdateReference = true;

// 빈 행과 열을 삭제합니다.
sheet.Cells.DeleteBlankRows(options);
sheet.Cells.DeleteBlankColumns(options);

// 통합 문서의 수식 계산
wb.CalculateFormula();

// 엑셀 파일을 저장합니다.
wb.Save("SampleOutput.xlsx");
빈 행과 열 삭제

그림 6: 빈 행과 열 삭제

결론

이 기사에서는 C#을 사용하여 Excel 파일에서 빈 행과 열을 삭제하는 방법을 배웠습니다. 또한 빈 행과 열을 삭제하면서 참조(공식, 차트 및 표에 사용)를 자동으로 업데이트하는 방법을 배웠습니다. 자세한 내용은 Aspose.Cells for .NET의 문서를 참조하십시오. 질문이 있는 경우 지원 포럼에 자유롭게 게시하십시오. 몇 시간 안에 답변을 드리겠습니다.

또한보십시오