如何将我的数据字段放在 Excel Pivot Table 的 COLUMNS 中(Aspose Cells)

How can I place my data fields in COLUMNS in my Excel Pivot Table (Aspose Cells)

我已经尝试过"PivotFieldType.Column"方法。它 没有 工作,因为源数据 Excel sheet 如下所示

Excel sheet: 输入数据

公司名称 FundsinUse LastDayCash

=======================

我正在从这个 "Input Data" sheet 创建 Pivot table 并且生成的 Excel 如下所示:

Row Labels          
My Company AA    FundsinUse    -101544
                 LastDayCash    111
My Company BB    FundsinUse     8755
                 LastDayCash    222

我想得到如下输出:

Row Labels          FundsinUse        LastDayCash
My Company AA        -101544            111
My Company BB         8755              222

请帮助我使用 C#

在数据字段上实现 "Drag To Colum"

示例代码

string sourceData = string.Format("='Input Data'!A1:BU{0}", totalRows + 1);

int indexOfFirstSheet = workbookDesigner.Workbook.Worksheets["FirstSheet"].Index;

Worksheet newWS = workbookDesigner.Workbook.Worksheets.Insert(indexOfFirstSheet + 1, SheetType.Worksheet, "My Pivot Sheet");

PivotTableCollection pivotTablesColl = newWS.PivotTables;

int index = pivotTablesColl.Add(sourceData, "A3", "My Pivot");

PivotTable pt = pivotTablesColl[index];
pt.RowGrand = true;
pt.ColumnGrand = true;

//Row field
pt.AddFieldToArea(PivotFieldType.Row, "Company Name");

// Data fields
pt.AddFieldToArea(PivotFieldType.Data, "FundsinUse");
pt.AddFieldToArea(PivotFieldType.Data, "LastDayCash");

PivotField fundsinUse = pt.DataFields[0];
fundsinUse.DragToColumn = true;

请根据您的需要使用PivotTable.DataField。请查看以下显示输入和输出 Excel 文件的示例代码和屏幕截图。

C#

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

Worksheet ws = wb.Worksheets[0];

PivotTable pt = ws.PivotTables[0];

PivotField pdf = pt.DataField;

pt.AddFieldToArea(PivotFieldType.Column, pt.DataField);

pt.RefreshData();
pt.CalculateData();

wb.Save("output.xlsx");

屏幕截图 - 之前

屏幕截图 -

之后

注意:我在 Aspose 担任开发人员布道师

PivotTable pt = (PivotTable)hoja2.PivotTables("TD1");
pt.Format(XlPivotFormatType.xlReport1);

对我有用

出于某种原因,当您有两个或更多数据字段而没有列字段时,您必须在列中添加一个“虚拟”字段以使其按预期显示。

// Add virtual field to column
pt.AddFieldToArea(PivotFieldType.Column, pt.DataField);

查看更完整的示例: https://forum.aspose.com/t/how-do-you-add-a-count-column-to-a-pivottable/166240/8