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)regionen är det första steget i att forma hur en pivottabell aggregerar din källdata. Aspose.Cells exponerar PivotTable.addFieldToArea(PivotFieldType, string), en överlagring som accepterar konstanten PivotFieldType.Data och källkolumnens namn. När ett fält har lagts till i dataregionen, exponeras det via samlingen PivotTable.getDataFields(), 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.
const AsposeCells = require("aspose.cells");
const workbook = new AsposeCells.Workbook();
const worksheet = workbook.getWorksheets().get(0);
worksheet.setName("Data");
// Rubriker i A1:D1
worksheet.getCells().get(0, 0).putValue("Category");
worksheet.getCells().get(0, 1).putValue("Item");
worksheet.getCells().get(0, 2).putValue("Year");
worksheet.getCells().get(0, 3).putValue("Amount");
// Datarader A2:D9 med nästlade loopar som grenar på j
for (let i = 1; i <= 8; i++) {
for (let j = 0; j < 4; j++) {
switch (j) {
case 0:
worksheet.getCells().get(i, j).putValue(i <= 4 ? "Fruit" : "Vegetable");
break;
case 1:
if (i === 1 || i === 2) worksheet.getCells().get(i, j).putValue("Apple");
else if (i === 3 || i === 4) worksheet.getCells().get(i, j).putValue("Banana");
else if (i === 5 || i === 6) worksheet.getCells().get(i, j).putValue("Carrot");
else worksheet.getCells().get(i, j).putValue("Daikon");
break;
case 2:
worksheet.getCells().get(i, j).putValue(2020 + ((i - 1) % 2));
break;
case 3:
if (i === 1) worksheet.getCells().get(i, j).putValue(100);
else if (i === 2) worksheet.getCells().get(i, j).putValue(150);
else if (i === 3) worksheet.getCells().get(i, j).putValue(80);
else if (i === 4) worksheet.getCells().get(i, j).putValue(90);
else if (i === 5) worksheet.getCells().get(i, j).putValue(50);
else if (i === 6) worksheet.getCells().get(i, j).putValue(60);
else if (i === 7) worksheet.getCells().get(i, j).putValue(40);
else worksheet.getCells().get(i, j).putValue(45);
break;
}
}
}
// Lägg till pivottabell vid F3 med namnet PivotTable1
const pivotIndex = worksheet.getPivotTables().add("A1:D9", "F3", "PivotTable1", true, false);
const pivotTable = worksheet.getPivotTables().get(pivotIndex);
// Pivotlayout: Kategori och Objekt på Rad, År på Kolumn, Belopp som datafält
pivotTable.addFieldToArea(AsposeCells.Pivot.PivotFieldType.Row, "Category");
pivotTable.addFieldToArea(AsposeCells.Pivot.PivotFieldType.Row, "Item");
pivotTable.addFieldToArea(AsposeCells.Pivot.PivotFieldType.Column, "Year");
pivotTable.addFieldToArea(AsposeCells.Pivot.PivotFieldType.Data, "Amount");
pivotTable.calculateData();
workbook.save("output_drag.xlsx");
Varje fält som placeras i dataregionen är internt inpackat som en PivotField-instans, och dess getFunction()-egenskap returnerar ett värde från enumerationen ConsolidationFunction. Samma setFunction()-setter låter dig växla mellan de tillgängliga aggregaten, inklusive Sum, Count, Average, Max, Min, Product, StdDev, StdDevp, Var och Varp.
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.
let worksheet = workbook.getWorksheets().get(0);
worksheet.setName("Data");
worksheet.getCells().get(0, 0).putValue("Category");
worksheet.getCells().get(0, 1).putValue("Item");
worksheet.getCells().get(0, 2).putValue("Year");
worksheet.getCells().get(0, 3).putValue("Amount");
for (let i = 1; i <= 8; i++)
{
for (let j = 0; j <= 3; j++)
{
if (j == 0)
{
worksheet.getCells().get(i, j).putValue(i <= 5 ? "Fruit" : "Vegetable");
}
else if (j == 1)
{
let items = ["Apple", "Apple", "Banana", "Banana", "Carrot", "Carrot", "Daikon", "Daikon"];
worksheet.getCells().get(i, j).putValue(items[i - 1]);
}
else if (j == 2)
{
let years = [2020, 2021, 2020, 2021, 2020, 2021, 2020, 2021];
worksheet.getCells().get(i, j).putValue(years[i - 1]);
}
else
{
let amounts = [100, 150, 80, 90, 50, 60, 40, 45];
worksheet.getCells().get(i, j).putValue(amounts[i - 1]);
}
}
}
let pivotIndex = worksheet.getPivotTables().add("A1:D9", "F3", "PivotTable1", true, false);
let pivotTable = worksheet.getPivotTables().get(pivotIndex);
pivotTable.addFieldToArea(AsposeCells.PivotFieldType.Row, "Category");
pivotTable.addFieldToArea(AsposeCells.PivotFieldType.Row, "Item");
pivotTable.addFieldToArea(AsposeCells.PivotFieldType.Column, "Year");
pivotTable.addFieldToArea(AsposeCells.PivotFieldType.Data, "Amount");
pivotTable.addFieldToArea(AsposeCells.PivotFieldType.Data, "Amount");
let countField = pivotTable.getDataFields().get(1);
countField.setFunction(AsposeCells.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 kallat PivotTable.getValuesField. Detta virtuella fält representerar aggregatet av varje datafält som finns i dataregionen. Du kan dra in det i rad- eller kolumnregionen som ett baspivotfält, vilket är användbart för att lägga ut flera mått sida vid sida.
PivotTable.getValuesField() fungerar inte om det inte finns något eller endast ett värdefält.
let workbook = new AsposeCells.Workbook();
let worksheet = workbook.getWorksheets().get(0);
worksheet.setName("Data");
worksheet.getCells().get(0, 0).putValue("Category");
worksheet.getCells().get(0, 1).putValue("Item");
worksheet.getCells().get(0, 2).putValue("Year");
worksheet.getCells().get(0, 3).putValue("Amount");
let categories = ["Fruit", "Fruit", "Fruit", "Fruit", "Vegetable", "Vegetable", "Vegetable", "Vegetable"];
let items = ["Apple", "Apple", "Banana", "Banana", "Carrot", "Carrot", "Daikon", "Daikon"];
let years = [2020, 2021, 2020, 2021, 2020, 2021, 2020, 2021];
let amounts = [100, 150, 80, 90, 50, 60, 40, 45];
for (let i = 1; i <= 8; i++)
{
for (let j = 0; j <= 3; j++)
{
if (j == 0) worksheet.getCells().get(i, j).putValue(categories[i - 1]);
else if (j == 1) worksheet.getCells().get(i, j).putValue(items[i - 1]);
else if (j == 2) worksheet.getCells().get(i, j).putValue(years[i - 1]);
else worksheet.getCells().get(i, j).putValue(amounts[i - 1]);
}
}
let pivotIndex = worksheet.getPivotTables().add("A1:D9", "F3", "PivotTable1", true, false);
let pivotTable = worksheet.getPivotTables().get(pivotIndex);
pivotTable.addFieldToArea(AsposeCells.PivotFieldType.Row, "Category");
pivotTable.addFieldToArea(AsposeCells.PivotFieldType.Row, "Item");
pivotTable.addFieldToArea(AsposeCells.PivotFieldType.Column, "Year");
pivotTable.addFieldToArea(AsposeCells.PivotFieldType.Data, "Amount");
pivotTable.addFieldToArea(AsposeCells.PivotFieldType.Data, "Amount");
pivotTable.getDataFields().get(1).setFunction(AsposeCells.ConsolidationFunction.Count);
pivotTable.addFieldToArea(AsposeCells.PivotFieldType.Column, pivotTable.getValuesField());
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.