Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Att lägga till ett basfält i data- (värde-) området är det första steget för att forma hur en pivottabell aggregerar dina källdata. Aspose.Cells exponerar PivotTable.AddFieldToArea(PivotFieldType, string), en överlagring som accepterar konstanten PivotFieldType.Data och källkolonnens namn. När ett fält har lagts till i dataområdet exponerar API:et det genom samlingen PivotTable.DataFields, i den ordning som fälten lades till. Som standard sammanfattas en numerisk källkolumn med ConsolidationFunction.Sum, medan en icke-numerisk kolumn som standard blir Count.
.Cells;
using Aspose.Cells.Pivot;
Workbook workbook = new Workbook();
Worksheet worksheet = workbook.Worksheets[0];
worksheet.Name = "Data";
// Rubriker i A1:D1
worksheet.Cells[0, 0].PutValue("Category");
worksheet.Cells[0, 1].PutValue("Item");
worksheet.Cells[0, 2].PutValue("Year");
worksheet.Cells[0, 3].PutValue("Amount");
// Datarader A2:D9 med kapslade slingor som förgrenar sig på j
for (int i = 1; i <= 8; i++)
{
for (int j = 0; j < 4; j++)
{
switch (j)
{
case 0:
worksheet.Cells[i, j].PutValue(i <= 4 ? "Fruit" : "Vegetable");
break;
case 1:
if (i == 1 || i == 2) worksheet.Cells[i, j].PutValue("Apple");
else if (i == 3 || i == 4) worksheet.Cells[i, j].PutValue("Banana");
else if (i == 5 || i == 6) worksheet.Cells[i, j].PutValue("Carrot");
else worksheet.Cells[i, j].PutValue("Daikon");
break;
case 2:
worksheet.Cells[i, j].PutValue(2020 + ((i - 1) % 2));
break;
case 3:
if (i == 1) worksheet.Cells[i, j].PutValue(100);
else if (i == 2) worksheet.Cells[i, j].PutValue(150);
else if (i == 3) worksheet.Cells[i, j].PutValue(80);
else if (i == 4) worksheet.Cells[i, j].PutValue(90);
else if (i == 5) worksheet.Cells[i, j].PutValue(50);
else if (i == 6) worksheet.Cells[i, j].PutValue(60);
else if (i == 7) worksheet.Cells[i, j].PutValue(40);
else worksheet.Cells[i, j].PutValue(45);
break;
}
}
}
// Lägg till pivottabell vid F3 med namnet PivotTable1
int pivotIndex = worksheet.PivotTables.Add("A1:D9", "F3", "PivotTable1");
PivotTable pivotTable = worksheet.PivotTables[pivotIndex];
// Pivotlayout: Category och Item på Row, Year på Column, Amount som datafält
pivotTable.AddFieldToArea(PivotFieldType.Row, "Category");
pivotTable.AddFieldToArea(PivotFieldType.Row, "Item");
pivotTable.AddFieldToArea(PivotFieldType.Column, "Year");
pivotTable.AddFieldToArea(PivotFieldType.Data, "Amount");
pivotTable.CalculateData();
workbook.Save("output_drag.xlsx");
Varje fält som placeras i dataområdet kapslas internt in som en PivotField-instans, och dess egenskap Function returnerar ett värde från enumereringen ConsolidationFunction. Samma Function-setter låter dig växla mellan de tillgängliga aggregaten, inklusive Sum, Count, Average, Max, Min, Product, StdDev, StdDevp, Var och Varp.
Function påverkar endast aggregatet, källkolumnen ändras inte.
Sum medan du lägger till ett andra datafält som riktar sig mot samma källkolumn men använder Count eller Average, allt i en enda pivot.
using System;
using Aspose.Cells;
using Aspose.Cells.Pivot;
Workbook workbook = new Workbook();
Worksheet worksheet = workbook.Worksheets[0];
worksheet.Name = "Data";
worksheet.Cells[0, 0].PutValue("Category");
worksheet.Cells[0, 1].PutValue("Item");
worksheet.Cells[0, 2].PutValue("Year");
worksheet.Cells[0, 3].PutValue("Amount");
for (int i = 1; i <= 8; i++)
{
for (int j = 0; j <= 3; j++)
{
if (j == 0)
{
worksheet.Cells[i, j].PutValue(i <= 5 ? "Fruit" : "Vegetable");
}
else if (j == 1)
{
string[] items = { "Apple", "Apple", "Banana", "Banana", "Carrot", "Carrot", "Daikon", "Daikon" };
worksheet.Cells[i, j].PutValue(items[i - 1]);
}
else if (j == 2)
{
int[] years = { 2020, 2021, 2020, 2021, 2020, 2021, 2020, 2021 };
worksheet.Cells[i, j].PutValue(years[i - 1]);
}
else
{
int[] amounts = { 100, 150, 80, 90, 50, 60, 40, 45 };
worksheet.Cells[i, j].PutValue(amounts[i - 1]);
}
}
}
int pivotIndex = worksheet.PivotTables.Add("A1:D9", "F3", "PivotTable1");
PivotTable pivotTable = worksheet.PivotTables[pivotIndex];
pivotTable.AddFieldToArea(PivotFieldType.Row, "Category");
pivotTable.AddFieldToArea(PivotFieldType.Row, "Item");
pivotTable.AddFieldToArea(PivotFieldType.Column, "Year");
pivotTable.AddFieldToArea(PivotFieldType.Data, "Amount");
pivotTable.AddFieldToArea(PivotFieldType.Data, "Amount");
PivotField countField = pivotTable.DataFields[1];
countField.Function = ConsolidationFunction.Count;
pivotTable.CalculateData();
workbook.Save("output_function.xlsx");
När en pivottabell innehåller två eller flera datafält, exponerar Aspose.Cells ytterligare ett virtuellt fält som kallas PivotTable.ValuesField. Detta virtuella fält representerar aggregatet av varje datafält som finns i dataområdet. Du kan dra det till rad- eller kolumnområdet som ett baspivotfält, vilket är användbart för att lägga ut flera mått sida vid sida.
PivotTable.ValuesField fungerar inte om det inte finns något eller bara ett värdefält.
using System;
using Aspose.Cells;
using Aspose.Cells.Pivot;
Workbook workbook = new Workbook();
Worksheet worksheet = workbook.Worksheets[0];
worksheet.Name = "Data";
worksheet.Cells[0, 0].PutValue("Category");
worksheet.Cells[0, 1].PutValue("Item");
worksheet.Cells[0, 2].PutValue("Year");
worksheet.Cells[0, 3].PutValue("Amount");
string[] categories = { "Fruit", "Fruit", "Fruit", "Fruit", "Vegetable", "Vegetable", "Vegetable", "Vegetable" };
string[] items = { "Apple", "Apple", "Banana", "Banana", "Carrot", "Carrot", "Daikon", "Daikon" };
int[] years = { 2020, 2021, 2020, 2021, 2020, 2021, 2020, 2021 };
int[] amounts = { 100, 150, 80, 90, 50, 60, 40, 45 };
for (int i = 1; i <= 8; i++)
{
for (int j = 0; j <= 3; j++)
{
if (j == 0) worksheet.Cells[i, j].PutValue(categories[i - 1]);
else if (j == 1) worksheet.Cells[i, j].PutValue(items[i - 1]);
else if (j == 2) worksheet.Cells[i, j].PutValue(years[i - 1]);
else worksheet.Cells[i, j].PutValue(amounts[i - 1]);
}
}
int pivotIndex = worksheet.PivotTables.Add("A1:D9", "F3", "PivotTable1");
PivotTable pivotTable = worksheet.PivotTables[pivotIndex];
pivotTable.AddFieldToArea(PivotFieldType.Row, "Category");
pivotTable.AddFieldToArea(PivotFieldType.Row, "Item");
pivotTable.AddFieldToArea(PivotFieldType.Column, "Year");
pivotTable.AddFieldToArea(PivotFieldType.Data, "Amount");
pivotTable.AddFieldToArea(PivotFieldType.Data, "Amount");
pivotTable.DataFields[1].Function = ConsolidationFunction.Count;
pivotTable.AddFieldToArea(PivotFieldType.Column, pivotTable.ValuesField.Name);
pivotTable.CalculateData();
workbook.Save("output_plot.xlsx");
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.