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.
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:
- Instalace – knihovna C# .NET pro vytváření kontingenčních tabulek Excelu
- Vytvoření kontingenční tabulky v Excelu v C#
- Seřaďte kontingenční tabulku Excel podle hodnot polí řádků
- Seřaďte kontingenční tabulku Excel podle hodnot polí sloupců
- Skrýt řádky kontingenční tabulky Excel
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.
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 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
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
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.