【发布时间】:2014-06-03 09:29:07
【问题描述】:
我正在用c#开发一个excel插件,必须创建一个数据透视表,我不知道如何组织数据,应该如何。
首先是数据源:
这就是最终数据透视表的样子:
但我只得到这样的东西,我不知道我必须如何更改我的代码:
最后是我排列数据源列的代码:
/* PIVOT RowFields */
Excel.PivotField nameField = pTable.PivotFields("Name");
nameField.Orientation = Excel.XlPivotFieldOrientation.xlRowField;
nameField.Position = 1;
Excel.PivotField monthField = pTable.PivotFields("Monat");
monthField.Orientation = Excel.XlPivotFieldOrientation.xlRowField;
monthField.Position = 2;
/* PIVOT Data */
Excel.PivotField sum200Field = pTable.PivotFields("Summe 1");
sum200Field.Orientation = Excel.XlPivotFieldOrientation.xlDataField;
Excel.PivotField sum700Field = pTable.PivotFields("Summe 2");
sum700Field.Orientation = Excel.XlPivotFieldOrientation.xlDataField;
Excel.PivotField sumDiffField = pTable.PivotFields("Differenz");
sumDiffField.Orientation = Excel.XlPivotFieldOrientation.xlDataField;
我正在使用 .NET Framework 4 ...我在互联网上阅读了很多文章,但我阅读的内容没有任何用处...
有人有想法吗?
更新:
正如@MP24 发布的那样,在我的代码末尾添加这两个 C# 行,列将显示在右侧,不包括名称和月份的分组:
Excel.PivotField dataField = pTable.DataPivotField;
dataField.Orientation = Excel.XlPivotFieldOrientation.xlColumnField;
更新2:
要将月份和名称列分组,以下代码将显示如何:
/* PIVOT ZEILEN */
Excel.PivotField monthField = pTable.PivotFields("Monat");
monthField.Orientation = Excel.XlPivotFieldOrientation.xlRowField;
monthField.LayoutCompactRow = true;
monthField.LayoutForm = Excel.XlLayoutFormType.xlOutline;
monthField.set_Subtotals(1, false);
Excel.PivotField nameField = pTable.PivotFields("Name");
nameField.Orientation = Excel.XlPivotFieldOrientation.xlRowField;
nameField.LayoutCompactRow = true;
nameField.set_Subtotals(2, false);
【问题讨论】:
标签: c# excel pivot-table