W tym artykule dowiesz się, jak utworzyć tabelę przestawną w programie Excel w języku C#. Omówimy również, jak programowo sortować lub ukrywać dane tabeli przestawnej za pomocą Aspose.Cells for .NET — interfejsu API platformy .NET do tworzenia arkuszy kalkulacyjnych Excel i manipulowania nimi bez konieczności korzystania z programu Microsoft Excel.

Tabele przestawne w Excelu

Wszystko stało się cyfrowe, a zautomatyzowane rozwiązania do generowania i manipulowania arkuszami kalkulacyjnymi Excel są szeroko stosowane. Tabele przestawne w programie Excel są szeroko stosowane do podsumowywania i analizowania danych. Podczas gdy sortowanie danych w tabelach przestawnych jest bardzo przydatne do krytycznej kontroli ogromnych danych w arkuszach kalkulacyjnych Excel. Sortowanie danych w tabelach przestawnych może być zastosowane do ułożenia pozycji alfabetycznie (AZ lub ZA) dla wartości tekstowych lub od najwyższej do najniższej lub od najniższej do najwyższej wartości w przypadku liczb.

Opierając się na znaczeniu tabel przestawnych programu Excel, ten artykuł ma na celu pokazanie, jak:

  • utwórz tabelę przestawną w Excelu za pomocą C#,
  • sortować tabelę przestawną według wartości pól wierszy,
  • sortować tabelę przestawną według wartości pól kolumn,
  • i ukryć wiersze tabeli przestawnej.

Do celów demonstracyjnych w przykładach zostanie użyty następujący przykładowy arkusz kalkulacyjny programu Excel.

Utwórz tabelę przestawną w Excelu w C#

Utwórz tabelę przestawną w Excelu w C#

Najpierw sprawdźmy, jak utworzyć tabelę przestawną programu Excel w języku C# przy użyciu Aspose.Cells dla platformy .NET. Po utworzeniu tabeli przestawnej ukryjemy wiersze i posortujemy dane na podstawie ich kolumn lub pól wierszy. Poniższy przykładowy kod pokazuje, jak utworzyć tabelę przestawną programu Excel.

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

// Uzyskanie referencji nowo dodanego arkusza
Worksheet sheet = wb.Worksheets[0];

PivotTableCollection pivotTables = sheet.PivotTables;

// źródłowa tabela przestawna
// Dodanie tabeli przestawnej do arkusza
int index = pivotTables.Add("=Sheet1!A1:C10", "E3", "PivotTable2");

//Dostęp do instancji nowo dodanej tabeli przestawnej
PivotTable pivotTable = pivotTables[index];

// Nie wyświetlam sum całkowitych dla wierszy.
pivotTable.RowGrand = false;
pivotTable.ColumnGrand = false;

// Przeciągnięcie pierwszego pola do obszaru wiersza.
pivotTable.AddFieldToArea(PivotFieldType.Row, 1);
PivotField rowField = pivotTable.RowFields[0];
rowField.IsAutoSort = true;
rowField.IsAscendSort = true;

// Przeciągnięcie drugiego pola do obszaru kolumny.
pivotTable.AddFieldToArea(PivotFieldType.Column, 0);
PivotField colField = pivotTable.ColumnFields[0];
colField.NumberFormat = "dd/mm/yyyy";
colField.IsAutoSort = true;
colField.IsAscendSort = true;

// Przeciągnięcie trzeciego pola do obszaru danych.
pivotTable.AddFieldToArea(PivotFieldType.Data, 2);

pivotTable.RefreshData();
pivotTable.CalculateData();
// end of źródłowa tabela przestawna

//Zapisywanie pliku Excela
wb.Save("output.xlsx");

Wyjście

Utwórz tabelę przestawną w programie Excel w ASP.NET

C# Twórz i sortuj tabele przestawne programu Excel według wierszy

W poprzedniej sekcji po prostu utworzyliśmy tabelę przestawną, korzystając z danych z arkusza kalkulacyjnego Excel. Teraz utworzymy kolejną tabelę przestawną i zastosujemy sortowanie danych. Poniższy przykładowy kod tworzy i sortuje tabelę przestawną według wartości pola wiersza „SeaFood”.

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

// Uzyskanie odniesienia do arkusza programu Excel.
Worksheet sheet = wb.Worksheets[0];

PivotTableCollection pivotTables = sheet.PivotTables;

// Dodawanie tabeli przestawnej do arkusza programu Excel.
int index = pivotTables.Add("=Sheet1!A1:C10", "E3", "PivotTable2");

// Dostęp do instancji nowo dodanej tabeli przestawnej.
PivotTable pivotTable = pivotTables[index];

// Nie wyświetlam sum całkowitych dla wierszy.
pivotTable.RowGrand = false;
pivotTable.ColumnGrand = false;

// Przeciągnięcie pierwszego pola do obszaru wiersza.
pivotTable.AddFieldToArea(PivotFieldType.Row, 1);
PivotField rowField = pivotTable.RowFields[0];
rowField.IsAutoSort = true;
rowField.IsAscendSort = true;

// Przeciągnięcie drugiego pola do obszaru kolumny.
pivotTable.AddFieldToArea(PivotFieldType.Column, 0);
PivotField colField = pivotTable.ColumnFields[0];
colField.NumberFormat = "dd/mm/yyyy";
colField.IsAutoSort = true;
colField.IsAscendSort = true;
colField.AutoSortField = 0;

// Przeciągnięcie trzeciego pola do obszaru danych.
pivotTable.AddFieldToArea(PivotFieldType.Data, 2);

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

// Zapisywanie pliku Excela.
wb.Save("output.xlsx");

Wyjście

Twórz i sortuj tabele przestawne w Excelu

Sortuj tabelę przestawną programu Excel według kolumny w języku C#

Możesz także sortować dane w tabeli przestawnej według wartości pól kolumn. Poniższy przykładowy kod w języku C# stosuje sortowanie według wartości pól kolumny „28/07/2000”.

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

// Uzyskanie odniesienia do arkusza programu Excel.
Worksheet sheet = wb.Worksheets[0];

PivotTableCollection pivotTables = sheet.PivotTables;

// Dodawanie tabeli przestawnej do arkusza programu Excel.
int index = pivotTables.Add("=Sheet1!A1:C10", "E3", "PivotTable2");

// Dostęp do instancji nowo dodanej tabeli przestawnej.
PivotTable pivotTable = pivotTables[index];

// Nie wyświetlam sum całkowitych dla wierszy.
pivotTable.RowGrand = false;
pivotTable.ColumnGrand = false;

// Przeciągnięcie pierwszego pola do obszaru wiersza.
pivotTable.AddFieldToArea(PivotFieldType.Row, 1);
PivotField rowField = pivotTable.RowFields[0];
rowField.IsAutoSort = true;
rowField.IsAscendSort = true;
colField.AutoSortField = 0;

// Przeciągnięcie drugiego pola do obszaru kolumny.
pivotTable.AddFieldToArea(PivotFieldType.Column, 0);
PivotField colField = pivotTable.ColumnFields[0];
colField.NumberFormat = "dd/mm/yyyy";
colField.IsAutoSort = true;
colField.IsAscendSort = true;

// Przeciągnięcie trzeciego pola do obszaru danych.
pivotTable.AddFieldToArea(PivotFieldType.Data, 2);

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

// Zapisywanie pliku Excela.
wb.Save("output.xlsx");

Wyjście

Ukryj dane w tabeli przestawnej w programie Excel

Ukryj wiersze tabeli przestawnej w programie Excel w języku C#

Możesz ukryć wiersze w tabeli przestawnej programu Excel na podstawie określonych warunków, które chcesz zastosować. Poniższy przykładowy kod pokazuje, jak ukryć określone wiersze w tabeli przestawnej przy użyciu języka 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;

// Sortowanie wartości malejąco
PivotField field = pivotTable.RowFields[0];
field.IsAutoSort = true;
field.IsAscendSort = false;
field.AutoSortField = 0;

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

// Ukrywanie wierszy o wartości mniejszej niż 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();

// Zapisywanie pliku Excela
workbook.Save("PivotTableHideAndSort.xlsx");

Zapoznaj się z dokumentacją Aspose.Cells for .NET, aby uzyskać więcej informacji na temat pracy z tabelami przestawnymi w programie Excel przy użyciu języka C# w dowolnej aplikacji opartej na platformie .NET. Skontaktuj się z nami na naszym forum w przypadku jakichkolwiek pytań lub wątpliwości.

Wniosek

W tym artykule nauczyłeś się, jak tworzyć tabele przestawne w plikach programu Excel przy użyciu języka C#. Ponadto widziałeś, jak sortować lub ukrywać dane w tabelach przestawnych w programie Excel przy użyciu języka C#. Możesz dowiedzieć się więcej o Aspose.Cells for .NET, korzystając z dokumentacji.

Zobacz też