V tomto článku se dozvíte, jak vytvořit kontingenční tabulku v Excelu v C#. Také se budeme zabývat tím, jak programově třídit nebo skrýt data kontingenční tabulky pomocí Aspose.Cells for .NET – .NET API pro vytváření a manipulaci s tabulkami Excelu bez nutnosti aplikace Microsoft Excel.

Vytvořte kontingenční tabulku v Excelu C#

Kontingenční tabulky v Excelu

Automatizovaná řešení pro generování a manipulaci s excelovými tabulkami jsou široce používána. Kontingenční tabulky v Excelu se široce používají k shrnutí a analýze dat. Zatímco řazení dat v kontingenčních tabulkách je velmi užitečné pro kritickou kontrolu velkých dat v tabulkách aplikace Excel. Řazení dat v kontingenčních tabulkách lze použít pro řazení položek abecedně (AZ nebo ZA) pro textové hodnoty nebo od nejvyšší po nejnižší nebo od nejnižší po nejvyšší v případě čísel.

Na základě důležitosti kontingenčních tabulek Excelu si tento článek klade za cíl ukázat vám, jak:

Knihovna C# .NET pro vytváření kontingenčních tabulek Excelu – instalace

Chcete-li vytvořit kontingenční tabulky v souborech aplikace Excel, nejprve nainstalujeme Aspose.Cells for .NET. Můžete si buď stáhnout jeho knihovnu DLL, nebo ji nainstalovat z NuGet.

PM> NuGet\Install-Package Aspose.Cells 

Vytvoření kontingenční tabulky v Excelu v C#

Nejprve se podívejme, jak vytvořit kontingenční tabulku Excel v C# pomocí Aspose.Cells for .NET. Jakmile vytvoříme kontingenční tabulku, skryjeme řádky a seřadíme data podle jejího sloupce nebo polí řádků. Pro demonstraci je v příkladech použita následující vzorová tabulka Excel.

Vytvořte kontingenční tabulku v Excelu v C#

Následující ukázka kódu ukazuje, jak vytvořit kontingenční tabulku Excel v C#.

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

// Získání odkazu na nově přidaný list
Worksheet sheet = wb.Worksheets[0];

PivotTableCollection pivotTables = sheet.PivotTables;

// zdrojová kontingenční tabulka
// Přidání kontingenční tabulky do listu
int index = pivotTables.Add("=Sheet1!A1:C10", "E3", "PivotTable2");

//Přístup k instanci nově přidané kontingenční tabulky
PivotTable pivotTable = pivotTables[index];

// Nezobrazování celkových součtů pro řádky.
pivotTable.RowGrand = false;
pivotTable.ColumnGrand = false;

// Přetažením prvního pole do oblasti řádku.
pivotTable.AddFieldToArea(PivotFieldType.Row, 1);
PivotField rowField = pivotTable.RowFields[0];
rowField.IsAutoSort = true;
rowField.IsAscendSort = true;

// Přetažením druhého pole do oblasti sloupce.
pivotTable.AddFieldToArea(PivotFieldType.Column, 0);
PivotField colField = pivotTable.ColumnFields[0];
colField.NumberFormat = "dd/mm/yyyy";
colField.IsAutoSort = true;
colField.IsAscendSort = true;

// Přetažením třetího pole do datové oblasti.
pivotTable.AddFieldToArea(PivotFieldType.Data, 2);

pivotTable.RefreshData();
pivotTable.CalculateData();
// end of zdrojová kontingenční tabulka

//Uložení souboru Excel
wb.Save("output.xlsx");

Výstup

Vytvořte kontingenční tabulku v Excelu v ASP.NET

Vytvořte a seřaďte kontingenční tabulku Excel podle řádku

V předchozí části jsme jednoduše vytvořili kontingenční tabulku pomocí dat v excelové tabulce. Nyní vytvoříme další kontingenční tabulku a použijeme řazení na data. Následující ukázka kódu vytvoří a seřadí kontingenční tabulku podle hodnot polí řádků “SeaFood”.

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

// Získání odkazu na pracovní list aplikace Excel.
Worksheet sheet = wb.Worksheets[0];

PivotTableCollection pivotTables = sheet.PivotTables;

// Přidání kontingenční tabulky do listu aplikace Excel.
int index = pivotTables.Add("=Sheet1!A1:C10", "E3", "PivotTable2");

// Přístup k instanci nově přidané kontingenční tabulky.
PivotTable pivotTable = pivotTables[index];

// Nezobrazování celkových součtů pro řádky.
pivotTable.RowGrand = false;
pivotTable.ColumnGrand = false;

// Přetažením prvního pole do oblasti řádku.
pivotTable.AddFieldToArea(PivotFieldType.Row, 1);
PivotField rowField = pivotTable.RowFields[0];
rowField.IsAutoSort = true;
rowField.IsAscendSort = true;

// Přetažením druhého pole do oblasti sloupce.
pivotTable.AddFieldToArea(PivotFieldType.Column, 0);
PivotField colField = pivotTable.ColumnFields[0];
colField.NumberFormat = "dd/mm/yyyy";
colField.IsAutoSort = true;
colField.IsAscendSort = true;
colField.AutoSortField = 0;

// Přetažením třetího pole do datové oblasti.
pivotTable.AddFieldToArea(PivotFieldType.Data, 2);

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

// Uložení souboru Excel.
wb.Save("output.xlsx");

Výstup

Vytváření a řazení kontingenční tabulky v Excelu

Seřadit kontingenční tabulku Excel podle sloupce v C#

Data v kontingenční tabulce můžete také seřadit podle hodnot polí sloupců. Následující ukázka kódu C# použije řazení podle hodnot polí sloupce “28/07/2000”.

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

// Získání odkazu na pracovní list aplikace Excel.
Worksheet sheet = wb.Worksheets[0];

PivotTableCollection pivotTables = sheet.PivotTables;

// Přidání kontingenční tabulky do listu aplikace Excel.
int index = pivotTables.Add("=Sheet1!A1:C10", "E3", "PivotTable2");

// Přístup k instanci nově přidané kontingenční tabulky.
PivotTable pivotTable = pivotTables[index];

// Nezobrazování celkových součtů pro řádky.
pivotTable.RowGrand = false;
pivotTable.ColumnGrand = false;

// Přetažením prvního pole do oblasti řádku.
pivotTable.AddFieldToArea(PivotFieldType.Row, 1);
PivotField rowField = pivotTable.RowFields[0];
rowField.IsAutoSort = true;
rowField.IsAscendSort = true;
colField.AutoSortField = 0;

// Přetažením druhého pole do oblasti sloupce.
pivotTable.AddFieldToArea(PivotFieldType.Column, 0);
PivotField colField = pivotTable.ColumnFields[0];
colField.NumberFormat = "dd/mm/yyyy";
colField.IsAutoSort = true;
colField.IsAscendSort = true;

// Přetažením třetího pole do datové oblasti.
pivotTable.AddFieldToArea(PivotFieldType.Data, 2);

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

// Uložení souboru Excel.
wb.Save("output.xlsx");

Výstup

Skrýt data v kontingenční tabulce v Excelu

C# Skrýt řádky kontingenční tabulky v Excelu

Řádky v kontingenční tabulce Excel můžete skrýt na základě určitých podmínek, které chcete použít. Následující ukázka kódu ukazuje, jak skrýt konkrétní řádky v kontingenční tabulce pomocí jazyka 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;

// Řazení hodnot sestupně
PivotField field = pivotTable.RowFields[0];
field.IsAutoSort = true;
field.IsAscendSort = false;
field.AutoSortField = 0;

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

// Skrytí řádků s hodnotou menší než 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();

// Uložení souboru Excel
workbook.Save("PivotTableHideAndSort.xlsx");

Použijte Aspose.Cells zdarma

Můžete získat bezplatnou dočasnou licenci k používání Aspose.Cells for .NET bez jakýchkoliv omezení hodnocení.

Závěr

V tomto článku jste se naučili, jak vytvořit kontingenční tabulky v souborech Excel pomocí C#. Dále jste viděli, jak třídit nebo skrýt data v kontingenčních tabulkách v Excelu pomocí C#.

Prozkoumejte knihovnu C# .NET Excel

Podívejte se na dokumentaci Aspose.Cells for .NET, kde najdete další podrobnosti o tom, jak pracovat s kontingenčními tabulkami v Excelu pomocí C# v jakékoli aplikaci založené na .NET. V případě jakýchkoliv dotazů nebo dotazů nás kontaktujte na našem fóru.

Viz také