Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
PivotTable.AddFieldToArea(PivotFieldType fieldType, U16String fieldName) yöntemi, kaynak verilerden bir temel alanı dört pivot bölgesinden birine taşır. fieldType argümanı aşağıdaki PivotFieldType değerlerinden birini kabul eder.
Row — sol tarafta dikey olarak yerleştirilen alanlarColumn — üstte yatay olarak yerleştirilen alanlarData — değerleri toplanan alanlarPage — rapor filtreleri olarak kullanılan alanlar
Alan iç içe geçme sırası önemlidir. Önce Category alanını satır bölgesine, ardından Item alanını eklemek, dış gruplandırması Category ve iç gruplandırması Item olan bir pivot oluşturur. Sıranın tersine çevrilmesi hiyerarşiyi de tersine çevirir.PivotField.SetSubtotals(PivotFieldSubtotalType subtotalType, bool shown) yöntemi, bir pivot alanı için hangi alt toplam satırlarının görüneceğini kontrol eder. Her çağrı, tek bir alt toplam türünü bağımsız olarak açıp kapatır. shown = true değerini geçmek alt toplamı görüntülerken, shown = false gizler. Her çağrı yalnızca bir türü etkilediğinden, yöntemin farklı subtotalType değerleriyle birden çok kez çağrılması özel bir alt toplam alt kümesi oluşturur.
PivotFieldSubtotalType numaralandırması, kullanılabilir alt toplam türlerini tanımlar.
Automatic — Aspose.Cells varsayılan seçimi belirler (genellikle sayısal alanlar için Sum)None — tüm alt toplam satırlarını gizleSumCountAverageMaxMinProductStdDevStdDevpVarVarpSetSubtotals çağrılarının görünür bir etkisi olmaz. Bu nedenle bu makale, her Category grubu arasındaki alt toplam sınırının görünür olması için her örnekte iki satır alanı (Category dış, Item iç) yerleştirir.
SetSubtotals yöntemini hiç çağırmadığınızda, Aspose.Cells sayısal alanlara Automatic seçimini uygular. Aşağıdaki örnek, dış Category satır alanı üzerinde SetSubtotals(PivotFieldSubtotalType.Automatic, true) çağırarak bu davranışı açıkça doğrular.
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main() {
Aspose::Cells::Startup();
Workbook workbook;
Worksheet worksheet = workbook.GetWorksheets().Get(0);
worksheet.SetName(u"Data");
worksheet.GetCells().Get(0, 0).PutValue(u"Category");
worksheet.GetCells().Get(0, 1).PutValue(u"Item");
worksheet.GetCells().Get(0, 2).PutValue(u"Year");
worksheet.GetCells().Get(0, 3).PutValue(u"Amount");
worksheet.GetCells().Get(1, 0).PutValue(u"Fruit");
worksheet.GetCells().Get(1, 1).PutValue(u"Apple");
worksheet.GetCells().Get(1, 2).PutValue(2020);
worksheet.GetCells().Get(1, 3).PutValue(100);
worksheet.GetCells().Get(2, 0).PutValue(u"Fruit");
worksheet.GetCells().Get(2, 1).PutValue(u"Apple");
worksheet.GetCells().Get(2, 2).PutValue(2021);
worksheet.GetCells().Get(2, 3).PutValue(150);
worksheet.GetCells().Get(3, 0).PutValue(u"Fruit");
worksheet.GetCells().Get(3, 1).PutValue(u"Banana");
worksheet.GetCells().Get(3, 2).PutValue(2020);
worksheet.GetCells().Get(3, 3).PutValue(80);
worksheet.GetCells().Get(4, 0).PutValue(u"Fruit");
worksheet.GetCells().Get(4, 1).PutValue(u"Banana");
worksheet.GetCells().Get(4, 2).PutValue(2021);
worksheet.GetCells().Get(4, 3).PutValue(90);
worksheet.GetCells().Get(5, 0).PutValue(u"Vegetable");
worksheet.GetCells().Get(5, 1).PutValue(u"Carrot");
worksheet.GetCells().Get(5, 2).PutValue(2020);
worksheet.GetCells().Get(5, 3).PutValue(50);
worksheet.GetCells().Get(6, 0).PutValue(u"Vegetable");
worksheet.GetCells().Get(6, 1).PutValue(u"Carrot");
worksheet.GetCells().Get(6, 2).PutValue(2021);
worksheet.GetCells().Get(6, 3).PutValue(60);
worksheet.GetCells().Get(7, 0).PutValue(u"Vegetable");
worksheet.GetCells().Get(7, 1).PutValue(u"Daikon");
worksheet.GetCells().Get(7, 2).PutValue(2020);
worksheet.GetCells().Get(7, 3).PutValue(40);
worksheet.GetCells().Get(8, 0).PutValue(u"Vegetable");
worksheet.GetCells().Get(8, 1).PutValue(u"Daikon");
worksheet.GetCells().Get(8, 2).PutValue(2021);
worksheet.GetCells().Get(8, 3).PutValue(45);
int pivotIndex = worksheet.GetPivotTables().Add(u"A1:D9", u"F3", u"PivotTable1");
PivotTable pivotTable = worksheet.GetPivotTables().Get(pivotIndex);
pivotTable.AddFieldToArea(PivotFieldType::Row, u"Category");
pivotTable.AddFieldToArea(PivotFieldType::Row, u"Item");
pivotTable.AddFieldToArea(PivotFieldType::Column, u"Year");
pivotTable.AddFieldToArea(PivotFieldType::Data, u"Amount");
PivotField categoryField = pivotTable.GetRowFields().Get(0);
categoryField.SetSubtotals(PivotFieldSubtotalType::Automatic, true);
pivotTable.CalculateData();
workbook.Save(u"output_automatic.xlsx");
Aspose::Cells::Cleanup();
return 0;
}
SetSubtotals(PivotFieldSubtotalType.None, true) çağrısı, pivot’tan her alt toplam satırını kaldırarak yalnızca alan satırlarını ve en altta genel toplamı bırakır. Bu, ham gruplandırılmış verileri herhangi bir özet satırı olmadan istediğinizde kullanışlıdır.
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main() {
Aspose::Cells::Startup();
Workbook wb;
Worksheet sheet = wb.GetWorksheets().Get(0);
sheet.SetName(u"Data");
U16String headers[] = { u"Category", u"Item", u"Year", u"Amount" };
for (int j = 0; j < 4; j++) {
sheet.GetCells().Get(0, j).PutValue(headers[j]);
}
U16String categories[] = { u"Fruit", u"Fruit", u"Fruit", u"Fruit",
u"Vegetable", u"Vegetable", u"Vegetable", u"Vegetable" };
U16String items[] = { u"Apple", u"Apple", u"Banana", u"Banana",
u"Carrot", u"Carrot", u"Daikon", u"Daikon" };
int years[] = { 2020, 2021, 2020, 2021, 2020, 2021, 2020, 2021 };
int amounts[] = { 100, 150, 80, 90, 50, 60, 40, 45 };
for (int i = 0; i < 8; i++) {
sheet.GetCells().Get(i + 1, 0).PutValue(categories[i]);
sheet.GetCells().Get(i + 1, 1).PutValue(items[i]);
sheet.GetCells().Get(i + 1, 2).PutValue(years[i]);
sheet.GetCells().Get(i + 1, 3).PutValue(amounts[i]);
}
int pivotIndex = sheet.GetPivotTables().Add(u"A1:D9", u"F3", u"PivotTable1");
PivotTable pivotTable = sheet.GetPivotTables().Get(pivotIndex);
pivotTable.AddFieldToArea(PivotFieldType::Row, u"Category");
pivotTable.AddFieldToArea(PivotFieldType::Row, u"Item");
pivotTable.AddFieldToArea(PivotFieldType::Column, u"Year");
pivotTable.AddFieldToArea(PivotFieldType::Data, u"Amount");
PivotField categoryField = pivotTable.GetRowFields().Get(0);
categoryField.SetSubtotals(PivotFieldSubtotalType::None, true);
pivotTable.CalculateData();
wb.Save(u"output_none.xlsx");
Aspose::Cells::Cleanup();
return 0;
}
Tek bir alt toplam türüyle sınırlı değilsiniz. Her SetSubtotals çağrısı bir tür üzerinde bağımsız olarak çalışır; dolayısıyla yöntemin iki kez çağrılması — bir kez Sum ve bir kez Average ile — her Category grubu için iki alt toplam satırından oluşan özel bir alt küme üretir.
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
using namespace Aspose::Cells::Pivot;
int main() {
Aspose::Cells::Startup();
Workbook workbook;
Worksheet worksheet = workbook.GetWorksheets().Get(0);
worksheet.SetName(u"Data");
worksheet.GetCells().Get(u"A1").PutValue(u"Category");
worksheet.GetCells().Get(u"B1").PutValue(u"Item");
worksheet.GetCells().Get(u"C1").PutValue(u"Year");
worksheet.GetCells().Get(u"D1").PutValue(u"Amount");
worksheet.GetCells().Get(1, 0).PutValue(u"Fruit");
worksheet.GetCells().Get(1, 1).PutValue(u"Apple");
worksheet.GetCells().Get(1, 2).PutValue(2020);
worksheet.GetCells().Get(1, 3).PutValue(100);
worksheet.GetCells().Get(2, 0).PutValue(u"Fruit");
worksheet.GetCells().Get(2, 1).PutValue(u"Apple");
worksheet.GetCells().Get(2, 2).PutValue(2021);
worksheet.GetCells().Get(2, 3).PutValue(150);
worksheet.GetCells().Get(3, 0).PutValue(u"Fruit");
worksheet.GetCells().Get(3, 1).PutValue(u"Banana");
worksheet.GetCells().Get(3, 2).PutValue(2020);
worksheet.GetCells().Get(3, 3).PutValue(80);
worksheet.GetCells().Get(4, 0).PutValue(u"Fruit");
worksheet.GetCells().Get(4, 1).PutValue(u"Banana");
worksheet.GetCells().Get(4, 2).PutValue(2021);
worksheet.GetCells().Get(4, 3).PutValue(90);
worksheet.GetCells().Get(5, 0).PutValue(u"Vegetable");
worksheet.GetCells().Get(5, 1).PutValue(u"Carrot");
worksheet.GetCells().Get(5, 2).PutValue(2020);
worksheet.GetCells().Get(5, 3).PutValue(50);
worksheet.GetCells().Get(6, 0).PutValue(u"Vegetable");
worksheet.GetCells().Get(6, 1).PutValue(u"Carrot");
worksheet.GetCells().Get(6, 2).PutValue(2021);
worksheet.GetCells().Get(6, 3).PutValue(60);
worksheet.GetCells().Get(7, 0).PutValue(u"Vegetable");
worksheet.GetCells().Get(7, 1).PutValue(u"Daikon");
worksheet.GetCells().Get(7, 2).PutValue(2020);
worksheet.GetCells().Get(7, 3).PutValue(40);
worksheet.GetCells().Get(8, 0).PutValue(u"Vegetable");
worksheet.GetCells().Get(8, 1).PutValue(u"Daikon");
worksheet.GetCells().Get(8, 2).PutValue(2021);
worksheet.GetCells().Get(8, 3).PutValue(45);
PivotTableCollection pivotTables = worksheet.GetPivotTables();
int pivotIndex = pivotTables.Add(u"A1:D9", u"F3", u"PivotTable1");
PivotTable pivotTable = pivotTables.Get(pivotIndex);
pivotTable.AddFieldToArea(PivotFieldType::Row, u"Category");
pivotTable.AddFieldToArea(PivotFieldType::Row, u"Item");
pivotTable.AddFieldToArea(PivotFieldType::Column, u"Year");
pivotTable.AddFieldToArea(PivotFieldType::Data, u"Amount");
PivotField categoryField = pivotTable.GetRowFields().Get(0);
categoryField.SetSubtotals(PivotFieldSubtotalType::Sum, true);
categoryField.SetSubtotals(PivotFieldSubtotalType::Average, true);
pivotTable.CalculateData();
workbook.Save(u"output_custom.xlsx");
Aspose::Cells::Cleanup();
return 0;
}
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.