我正在以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,希望将两个区域分配到列但没有运气。他们仍然像行一样工作。这个菜鸟没有技巧。请帮忙。