이 기사에서는 Aspose.Cells for .NET - .NET API를 사용하여 Excel에서 피벗 테이블을 만들고 프로그래밍 방식으로 C#에서 피벗 테이블 데이터 또는 항목을 정렬하거나 숨기고 Excel 스프레드시트를 만들고 조작하는 방법을 배웁니다. Microsoft Excel이 필요하지 않습니다.

Excel의 피벗 테이블

모든 것이 디지털화되고 Excel 스프레드시트의 생성 및 조작을 위한 자동화된 솔루션이 널리 사용됩니다. Excel의 피벗 테이블은 데이터를 요약하고 분석하는 데 광범위하게 사용됩니다. 피벗 테이블의 데이터를 정렬하는 것은 Excel 스프레드시트의 방대한 데이터를 중요한 검사에 매우 유용합니다. 피벗 테이블의 데이터 정렬은 텍스트 값의 경우 항목을 알파벳순(AZ 또는 ZA)으로 정렬하거나 숫자의 경우 가장 높은 값에서 가장 낮은 값으로 또는 가장 낮은 값에서 가장 높은 값으로 항목을 정렬하는 데 적용할 수 있습니다.

Excel 피벗 테이블의 중요성에 따라 이 문서에서는 다음을 수행하는 방법을 보여줍니다.

  • Excel에서 피벗 테이블을 만들고,
  • 행 필드 값으로 피벗 테이블 정렬,
  • 열 필드 값으로 피벗 테이블 정렬,
  • 피벗 테이블 행을 숨깁니다.

데모를 위해 다음 샘플 Excel 스프레드시트가 예제 전체에서 사용됩니다.

C#의 Excel에서 피벗 테이블 만들기

C#을 사용하여 Excel에서 피벗 테이블 만들기

먼저 .NET용 Aspose.Cells를 사용하여 C#에서 Excel 피벗 테이블을 만드는 방법을 확인하겠습니다. 피벗 테이블을 만든 후에는 행을 숨기고 해당 열 또는 행 필드를 기반으로 데이터를 정렬합니다. 다음 코드 샘플은 Excel 피벗 테이블을 만드는 방법을 보여줍니다.

Workbook wb = new Workbook("SampleExcel.xlsx");

// 새로 추가된 워크시트의 참조 가져오기
Worksheet sheet = wb.Worksheets[0];

PivotTableCollection pivotTables = sheet.PivotTables;

// 소스 피벗 테이블
// 워크시트에 피벗 테이블 추가
int index = pivotTables.Add("=Sheet1!A1:C10", "E3", "PivotTable2");

//새로 추가된 피벗 테이블의 인스턴스에 액세스
PivotTable pivotTable = pivotTables[index];

// 행의 총합계를 표시하지 않습니다.
pivotTable.RowGrand = false;
pivotTable.ColumnGrand = false;

// 첫 번째 필드를 행 영역으로 드래그합니다.
pivotTable.AddFieldToArea(PivotFieldType.Row, 1);
PivotField rowField = pivotTable.RowFields[0];
rowField.IsAutoSort = true;
rowField.IsAscendSort = true;

// 두 번째 필드를 열 영역으로 드래그합니다.
pivotTable.AddFieldToArea(PivotFieldType.Column, 0);
PivotField colField = pivotTable.ColumnFields[0];
colField.NumberFormat = "dd/mm/yyyy";
colField.IsAutoSort = true;
colField.IsAscendSort = true;

// 세 번째 필드를 데이터 영역으로 드래그합니다.
pivotTable.AddFieldToArea(PivotFieldType.Data, 2);

pivotTable.RefreshData();
pivotTable.CalculateData();
// end of 소스 피벗 테이블

//엑셀 파일 저장
wb.Save("output.xlsx");

산출

ASP.NET의 Excel에서 피벗 테이블 만들기

C#에서 행 필드 값으로 피벗 테이블 정렬

이전 섹션에서는 Excel 스프레드시트의 데이터를 사용하여 간단히 피벗 테이블을 만들었습니다. 이제 다른 피벗 테이블을 만들고 데이터에 정렬을 적용하겠습니다. 다음 코드 샘플은 “SeaFood” 행 필드 값을 기준으로 피벗 테이블을 만들고 정렬합니다.

Workbook wb = new Workbook("SampleExcel.xlsx");

// Excel 워크시트의 참조를 얻습니다.
Worksheet sheet = wb.Worksheets[0];

PivotTableCollection pivotTables = sheet.PivotTables;

// Excel 워크시트에 피벗 테이블을 추가합니다.
int index = pivotTables.Add("=Sheet1!A1:C10", "E3", "PivotTable2");

// 새로 추가된 피벗 테이블의 인스턴스에 액세스합니다.
PivotTable pivotTable = pivotTables[index];

// 행의 총합계를 표시하지 않습니다.
pivotTable.RowGrand = false;
pivotTable.ColumnGrand = false;

// 첫 번째 필드를 행 영역으로 드래그합니다.
pivotTable.AddFieldToArea(PivotFieldType.Row, 1);
PivotField rowField = pivotTable.RowFields[0];
rowField.IsAutoSort = true;
rowField.IsAscendSort = true;

// 두 번째 필드를 열 영역으로 드래그합니다.
pivotTable.AddFieldToArea(PivotFieldType.Column, 0);
PivotField colField = pivotTable.ColumnFields[0];
colField.NumberFormat = "dd/mm/yyyy";
colField.IsAutoSort = true;
colField.IsAscendSort = true;
colField.AutoSortField = 0;

// 세 번째 필드를 데이터 영역으로 드래그합니다.
pivotTable.AddFieldToArea(PivotFieldType.Data, 2);

pivotTable.RefreshData();
pivotTable.CalculateData();

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

산출

Excel에서 피벗 테이블 만들기 및 정렬

C#에서 열 필드 값으로 피벗 테이블 정렬

열 필드 값을 기준으로 피벗 테이블의 데이터를 정렬할 수도 있습니다. 다음 C# 코드 샘플은 “28/07/2000” 열의 필드 값에 정렬을 적용합니다.

Workbook wb = new Workbook("SampleExcel.xlsx");

// Excel 워크시트의 참조를 얻습니다.
Worksheet sheet = wb.Worksheets[0];

PivotTableCollection pivotTables = sheet.PivotTables;

// Excel 워크시트에 피벗 테이블을 추가합니다.
int index = pivotTables.Add("=Sheet1!A1:C10", "E3", "PivotTable2");

// 새로 추가된 피벗 테이블의 인스턴스에 액세스합니다.
PivotTable pivotTable = pivotTables[index];

// 행의 총합계를 표시하지 않습니다.
pivotTable.RowGrand = false;
pivotTable.ColumnGrand = false;

// 첫 번째 필드를 행 영역으로 드래그합니다.
pivotTable.AddFieldToArea(PivotFieldType.Row, 1);
PivotField rowField = pivotTable.RowFields[0];
rowField.IsAutoSort = true;
rowField.IsAscendSort = true;
colField.AutoSortField = 0;

// 두 번째 필드를 열 영역으로 드래그합니다.
pivotTable.AddFieldToArea(PivotFieldType.Column, 0);
PivotField colField = pivotTable.ColumnFields[0];
colField.NumberFormat = "dd/mm/yyyy";
colField.IsAutoSort = true;
colField.IsAscendSort = true;

// 세 번째 필드를 데이터 영역으로 드래그합니다.
pivotTable.AddFieldToArea(PivotFieldType.Data, 2);

pivotTable.RefreshData();
pivotTable.CalculateData();

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

산출

Excel의 피벗 테이블에서 데이터 숨기기

C#에서 피벗 테이블 행 숨기기

적용하려는 특정 조건에 따라 Excel 피벗 테이블의 행을 숨길 수 있습니다. 다음 코드 샘플은 C#을 사용하여 피벗 테이블에서 특정 행을 숨기는 방법을 보여줍니다.

Workbook workbook = new Workbook("output.xlsx");
Worksheet worksheet = workbook.Worksheets[0];

var pivotTable = worksheet.PivotTables[0];
var dataBodyRange = pivotTable.DataBodyRange;
int currentRow = 1;
int rowsUsed = dataBodyRange.EndRow;

// 내림차순으로 값 정렬
PivotField field = pivotTable.RowFields[0];
field.IsAutoSort = true;
field.IsAscendSort = false;
field.AutoSortField = 0;

pivotTable.RefreshData();
pivotTable.CalculateData();

// 값이 15보다 작은 행 숨기기
while (currentRow < rowsUsed)
{
	Cell cell = worksheet.Cells[currentRow, 2];
	double score = Convert.ToDouble(cell.Value);
	if (score < 15)
	{
		worksheet.Cells.HideRow(currentRow);
	}
	currentRow++;
}

pivotTable.RefreshData();
pivotTable.CalculateData();

// 엑셀 파일 저장
workbook.Save("PivotTableHideAndSort.xlsx");

모든 .NET 기반 응용 프로그램에서 C#을 사용하여 Excel의 피벗 테이블로 작업하는 방법에 대한 자세한 내용은 .NET용 Aspose.Cells의 문서를 참조하십시오. 질문이나 질문이 있는 경우 포럼에 문의하세요.

결론

이 문서에서는 C#을 사용하여 Excel 파일의 피벗 테이블을 사용하는 방법을 배웠습니다. 특히 C#을 사용하여 Excel에서 피벗 테이블을 만들고 피벗 테이블의 데이터를 정렬하거나 숨기는 방법을 살펴보았습니다. 문서를 사용하여 .NET용 Aspose.Cells에 대해 자세히 알아볼 수 있습니다.

또한보십시오