代码之家  ›  专栏  ›  技术社区  ›  Obuli

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

  •  0
  • Obuli  · 技术社区  · 7 年前

    我已经试过了 “PivotFieldType.Column” 方法它是

    Excel工作表:输入数据

    公司名称Fundsouse LastDayCash

    • 我的公司AA-33848 37
    • 我的公司AA-33848 37
    • 我的公司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
    

    请帮助我使用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 回复  |  直到 7 年前
        1
  •  1
  •   shakeel    7 年前

    请使用 数据透视表。字段名 满足您的需求。请参阅以下显示输入和输出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担任开发人员传道者

        2
  •  0
  •   Ismael Padilla    4 年前
    PivotTable pt = (PivotTable)hoja2.PivotTables("TD1");
    pt.Format(XlPivotFormatType.xlReport1);
    

    它对我有用

        3
  •  0
  •   Scott Stafford    3 年前

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

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