Excel Interop Pivot列字段转到行

时间:2015-12-01 07:37:10

标签: c# winforms visual-studio-2010 pivot-table excel-interop

我正在以Windows编程方式在Windows应用程序中创建数据透视表。我有以下代码将列分配给它们各自的字段。我的问题出现在区域2,我希望将其分配给列字段但由于某种原因,它会继续进入行字段。
正如您将看到的,我有1行,1列,1页和2代码中写入的数据字段。

ExcelRef.Worksheet SourceSheet = ExcelWorkbook.Worksheets[1];
ExcelRef.Worksheet TargetSheet = ExcelWorkbook.Worksheets.Add(After: ExcelWorkbook.Sheets[ExcelWorkbook.Sheets.Count]);

//Pivot data source
ExcelRef.Range SourceDataRange = SourceSheet.UsedRange;
//Clearing the destination sheet
TargetSheet.UsedRange.Clear();
//Pivot Data destination
ExcelRef.Range PivotDestination = TargetSheet.get_Range("A1");

string PivotTableName = "Sample";

ExcelWorkbook.PivotTableWizard(ExcelRef.XlPivotTableSourceType.xlDatabase,
SourceDataRange,
PivotDestination,
PivotTableName,
true, true, true, true,
useDefault, useDefault,
false, false,
ExcelRef.XlOrder.xlDownThenOver,
0,
useDefault, useDefault);

//Pivot cell arrangement
ExcelRef.PivotTable TempPivotTable = TargetSheet.PivotTables(PivotTableName);
ExcelRef.PivotField Region1 = TempPivotTable.PivotFields(14);
ExcelRef.PivotField Region2 = TempPivotTable.PivotFields(15);
ExcelRef.PivotField Region3 = TempPivotTable.PivotFields(19);
ExcelRef.PivotField Region4 = TempPivotTable.PivotFields(20);
ExcelRef.PivotField Region5 = TempPivotTable.PivotFields(23);

Region1.Orientation = ExcelRef.XlPivotFieldOrientation.xlRowField;
Region1.Position = 1;
Region2.Orientation = ExcelRef.XlPivotFieldOrientation.xlColumnField;  //Problem with this region
Region2.Position = 1;
Region3.Orientation = ExcelRef.XlPivotFieldOrientation.xlPageField;
Region4.Orientation = ExcelRef.XlPivotFieldOrientation.xlDataField;
Region4.Position = 1;
Region4.Function = ExcelRef.XlConsolidationFunction.xlSum;
Region5.Orientation = ExcelRef.XlPivotFieldOrientation.xlDataField;
Region5.Position = 2;
Region5.Function = ExcelRef.XlConsolidationFunction.xlSum;

我哪里错了?我该如何解决这个问题?

[编辑]
有趣的事实:为了获得更好的洞察力,我也将xlRowField更改为xlColumnField,希望将两个区域分配到列但没有运气。他们仍然像行一样工作。这个菜鸟没有技巧。请帮忙。

0 个答案:

没有答案