Skapa pivottabell i Excel C#

Pivottabeller är ett kraftfullt verktyg i Excel för att sammanfatta och analysera data. De låter dig snabbt omvandla en stor datamängd till ett mer hanterbart och meningsfullt format. I den här artikeln får du lära dig hur du skapar pivottabell i Excel i C#. Vi kommer också att ta upp hur man sorterar eller döljer pivottabelldata programmatiskt med hjälp av Aspose.Cells for .NET - ett .NET API för att skapa och manipulera Excel-kalkylblad utan att behöva Microsoft Excel.

Baserat på vikten av Excel-pivottabeller, syftar den här artikeln till att visa dig hur du:

C#-bibliotek för att skapa Excel-pivottabeller

För att skapa pivottabeller i Excel-filer installerar vi först Aspose.Cells for .NET. Du kan antingen ladda ner dess DLL eller installera den från NuGet.

PM> NuGet\Install-Package Aspose.Cells 

Pivottabeller i Excel

De automatiserade lösningarna för generering och manipulering av Excel-kalkylblad används i stor utsträckning. Pivottabellerna i Excel används flitigt för att sammanfatta och analysera data. Att sortera data i pivottabellerna är mycket användbart för kritisk inspektion av enorma data i Excel-kalkylblad. Sorteringen av data i pivottabeller kan användas för att ordna objekten alfabetiskt (AZ eller ZA) för textvärden eller från högsta till lägsta eller lägsta till högsta värden vid siffror.

Skapa en pivottabell i Excel i C#

Låt oss först kolla in hur man skapar en Excel-pivottabell i C# med Aspose.Cells för .NET. När vi har skapat pivottabellen gömmer vi raderna och sorterar data baserat på dess kolumn eller radfälten. För demonstrationen används följande exempel på Excel-kalkylblad i exemplen.

Skapa pivottabell i Excel i C#

Följande kodexempel visar hur man skapar en Excel-pivottabell i C#.

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

// Få referensen till det nyligen tillagda kalkylbladet
Worksheet sheet = wb.Worksheets[0];

PivotTableCollection pivotTables = sheet.PivotTables;

// källpivottabell
// Lägga till en pivottabell i kalkylbladet
int index = pivotTables.Add("=Sheet1!A1:C10", "E3", "PivotTable2");

//Åtkomst till instansen av den nyligen tillagda pivottabellen
PivotTable pivotTable = pivotTables[index];

// Avvisar totalsummor för rader.
pivotTable.RowGrand = false;
pivotTable.ColumnGrand = false;

// Dra det första fältet till radområdet.
pivotTable.AddFieldToArea(PivotFieldType.Row, 1);
PivotField rowField = pivotTable.RowFields[0];
rowField.IsAutoSort = true;
rowField.IsAscendSort = true;

// Dra det andra fältet till kolumnområdet.
pivotTable.AddFieldToArea(PivotFieldType.Column, 0);
PivotField colField = pivotTable.ColumnFields[0];
colField.NumberFormat = "dd/mm/yyyy";
colField.IsAutoSort = true;
colField.IsAscendSort = true;

// Dra det tredje fältet till dataområdet.
pivotTable.AddFieldToArea(PivotFieldType.Data, 2);

pivotTable.RefreshData();
pivotTable.CalculateData();
// end of källpivottabell

//Sparar Excel-filen
wb.Save("output.xlsx");

Produktion

Skapa pivottabell i Excel i ASP.NET

Skapa och sortera Excel-pivottabell efter rad

I föregående avsnitt skapade vi helt enkelt pivottabellen med hjälp av data i Excel-kalkylarket. Nu skapar vi en annan pivottabell och tillämpar sorteringen på data. Följande kodexempel skapar och sorterar pivottabellen efter “SeaFood”-radfältvärden.

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

// Få referensen till Excel-kalkylbladet.
Worksheet sheet = wb.Worksheets[0];

PivotTableCollection pivotTables = sheet.PivotTables;

// Lägga till en pivottabell i Excel-kalkylbladet.
int index = pivotTables.Add("=Sheet1!A1:C10", "E3", "PivotTable2");

// Åtkomst till instansen av den nyligen tillagda pivottabellen.
PivotTable pivotTable = pivotTables[index];

// Avvisar totalsummor för rader.
pivotTable.RowGrand = false;
pivotTable.ColumnGrand = false;

// Dra det första fältet till radområdet.
pivotTable.AddFieldToArea(PivotFieldType.Row, 1);
PivotField rowField = pivotTable.RowFields[0];
rowField.IsAutoSort = true;
rowField.IsAscendSort = true;

// Dra det andra fältet till kolumnområdet.
pivotTable.AddFieldToArea(PivotFieldType.Column, 0);
PivotField colField = pivotTable.ColumnFields[0];
colField.NumberFormat = "dd/mm/yyyy";
colField.IsAutoSort = true;
colField.IsAscendSort = true;
colField.AutoSortField = 0;

// Dra det tredje fältet till dataområdet.
pivotTable.AddFieldToArea(PivotFieldType.Data, 2);

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

// Sparar Excel-filen.
wb.Save("output.xlsx");

Produktion

Skapa och sortera pivottabell i Excel

Sortera Excel-pivottabell efter kolumn i C#

Du kan också sortera data i en pivottabell efter kolumnfältvärdena. Följande C#-kodexempel tillämpar sorteringen på fältvärden i kolumnen “28/07/2000”.

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

// Få referensen till Excel-kalkylbladet.
Worksheet sheet = wb.Worksheets[0];

PivotTableCollection pivotTables = sheet.PivotTables;

// Lägga till en pivottabell i Excel-kalkylbladet.
int index = pivotTables.Add("=Sheet1!A1:C10", "E3", "PivotTable2");

// Åtkomst till instansen av den nyligen tillagda pivottabellen.
PivotTable pivotTable = pivotTables[index];

// Avvisar totalsummor för rader.
pivotTable.RowGrand = false;
pivotTable.ColumnGrand = false;

// Dra det första fältet till radområdet.
pivotTable.AddFieldToArea(PivotFieldType.Row, 1);
PivotField rowField = pivotTable.RowFields[0];
rowField.IsAutoSort = true;
rowField.IsAscendSort = true;
colField.AutoSortField = 0;

// Dra det andra fältet till kolumnområdet.
pivotTable.AddFieldToArea(PivotFieldType.Column, 0);
PivotField colField = pivotTable.ColumnFields[0];
colField.NumberFormat = "dd/mm/yyyy";
colField.IsAutoSort = true;
colField.IsAscendSort = true;

// Dra det tredje fältet till dataområdet.
pivotTable.AddFieldToArea(PivotFieldType.Data, 2);

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

// Sparar Excel-filen.
wb.Save("output.xlsx");

Produktion

Dölj data i pivottabellen i Excel

Dölj pivottabellrader i Excel

Du kan dölja raderna i Excel-pivottabellen baserat på vissa villkor som du vill tillämpa. Följande kodexempel visar hur man döljer specifika rader i pivottabellen med 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;

// Sortera värden i fallande
PivotField field = pivotTable.RowFields[0];
field.IsAutoSort = true;
field.IsAscendSort = false;
field.AutoSortField = 0;

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

// Döljer rader med värde mindre än 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();

// Sparar Excel-filen
workbook.Save("PivotTableHideAndSort.xlsx");

Använd Aspose.Cells gratis

Du kan få en gratis tillfällig licens för att använda Aspose.Cells för .NET utan några utvärderingsbegränsningar.

Utforska C# .NET Excel-biblioteket

Ta en titt på dokumentationen av Aspose.Cells för .NET för mer information om hur du arbetar med pivottabeller i Excel med C# i alla .NET-baserade program. Kontakta oss på vårt forum om du har några frågor eller funderingar.

Slutsats

Att skapa pivottabeller i Excel-ark med C# och Aspose.Cells för .NET är ett kraftfullt sätt att automatisera dataanalysuppgifter. Det här biblioteket förenklar processen och låter dig arbeta med Excel-filer programmatiskt, vilket gör det lättare att hantera och manipulera data.

Genom att följa stegen som beskrivs i det här blogginlägget kan du komma igång med att skapa pivottabeller i dina C#-applikationer, vilket gör dataanalys och rapportering mer effektiv och effektiv. Dessutom kan du sortera eller dölja data i pivottabeller i Excel-ark sömlöst.

Se även