如何将我的数据字段放在我的Excel数据透视表(Aspose单元格)中的COLUMNS中

时间:2017-10-24 20:13:13

标签: c# excel pivot-table aspose-cells

我已经尝试过" PivotFieldType.Column" 方法。它的正在工作,因为源数据Excel表格如下所示

Excel工作表:输入数据

公司名称FundsinUse LastDayCash

  • 我的公司AA -33848 37
  • 我的公司AA -33848 37
  • 我的公司AA -33848 37
  • 我的公司BB 2188.75 55.5
  • 我的公司BB 2188.75 55.5
  • 我的公司BB 2188.75 55.5
  • 我的公司BB 2188.75 55.5

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

我正在创建数据透视表"输入数据"工作表和生成的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

请帮我实施" Drag To Colum"使用C#

的数据字段

示例代码

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;

3 个答案:

答案 0 :(得分:1)

请根据您的需要使用数据透视表.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");

屏幕截图 - 之前

enter image description here

屏幕截图 - 在

之后

enter image description here

注意: 我在Aspose担任开发人员传播者

答案 1 :(得分:0)

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

对我有用

答案 2 :(得分:0)

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

// 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