在 C# 中激活枢轴总计 Table 的显示详细信息
Activating Show Details for Grand Total of Pivot Table in C#
我正在尝试使用 C#
从 Excel 自动创建枢轴 Table 的 "Show Detail"
using Excel = Microsoft.Office.Interop.Excel;
我的代码:
var excelApp = new Excel.Application();
excelApp.Visible = true;
Excel.Workbook workbook = excelApp.Workbooks.Open(@"D:\path_to_excel_file.xlsm");
Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets["Sheet_Name"];
Excel.PivotTable pivot = worksheet.PivotTables("defined_pivot_table_name");
pivot.DataBodyRange.ShowDetail = true;
代码有效,但它仅显示第一个 "Total" 值的详细信息。但是我想要的是得到"Grand Total"的"Show Details"。
在这种情况下,对于这个枢轴 table,它将创建一个包含 4 个元素的新 sheet,但我想要的是总计 (202)。
我尝试先通过 pivot.PivotSelect("Grand Total");
选择它,但仍然没有结果。我还检查了 pivot.RowGrand
和 pivot.ColumnGrand
两者 return True.
也许this可以提供帮助
// Access the pivot table by its name in the collection.
PivotTable pivotTable = worksheet.PivotTables["PivotTable1"];
// Access the pivot field by its name in the collection.
PivotField field = pivotTable.Fields["Category"];
// Display multiple subtotals for the field.
field.SetSubtotal(PivotSubtotalFunctions.Sum | PivotSubtotalFunctions.Average);
// Show all subtotals at the bottom of each group.
pivotTable.Layout.ShowAllSubtotals(false);
// Hide grand totals for rows.
pivotTable.Layout.ShowRowGrandTotals = False
// Hide grand totals for columns.
pivotTable.Layout.ShowColumnGrandTotals = False
// custom label for grand totals
pivotTable.View.GrandTotalCaption = "Total Sales";
如果您的数据透视表同时具有 RowGrand
和 ColumnGrand
,那么它也有总计
if (pivot.RowGrand && pivot.ColumnGrand)
然后您可以使用数据透视表的最后一个单元格 TableRange1
通过 ShowDetail
生成详细信息
int countRows = pivot.TableRange1.Rows.Count;
int countColumns = pivot.TableRange1.Columns.Count;
pivot.TableRange1.Cells[countRows, countColumns].ShowDetail = true;
我正在尝试使用 C#
从 Excel 自动创建枢轴 Table 的 "Show Detail"using Excel = Microsoft.Office.Interop.Excel;
我的代码:
var excelApp = new Excel.Application();
excelApp.Visible = true;
Excel.Workbook workbook = excelApp.Workbooks.Open(@"D:\path_to_excel_file.xlsm");
Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets["Sheet_Name"];
Excel.PivotTable pivot = worksheet.PivotTables("defined_pivot_table_name");
pivot.DataBodyRange.ShowDetail = true;
代码有效,但它仅显示第一个 "Total" 值的详细信息。但是我想要的是得到"Grand Total"的"Show Details"。 在这种情况下,对于这个枢轴 table,它将创建一个包含 4 个元素的新 sheet,但我想要的是总计 (202)。
我尝试先通过 pivot.PivotSelect("Grand Total");
选择它,但仍然没有结果。我还检查了 pivot.RowGrand
和 pivot.ColumnGrand
两者 return True.
也许this可以提供帮助
// Access the pivot table by its name in the collection.
PivotTable pivotTable = worksheet.PivotTables["PivotTable1"];
// Access the pivot field by its name in the collection.
PivotField field = pivotTable.Fields["Category"];
// Display multiple subtotals for the field.
field.SetSubtotal(PivotSubtotalFunctions.Sum | PivotSubtotalFunctions.Average);
// Show all subtotals at the bottom of each group.
pivotTable.Layout.ShowAllSubtotals(false);
// Hide grand totals for rows.
pivotTable.Layout.ShowRowGrandTotals = False
// Hide grand totals for columns.
pivotTable.Layout.ShowColumnGrandTotals = False
// custom label for grand totals
pivotTable.View.GrandTotalCaption = "Total Sales";
如果您的数据透视表同时具有 RowGrand
和 ColumnGrand
,那么它也有总计
if (pivot.RowGrand && pivot.ColumnGrand)
然后您可以使用数据透视表的最后一个单元格 TableRange1
通过 ShowDetail
int countRows = pivot.TableRange1.Rows.Count;
int countColumns = pivot.TableRange1.Columns.Count;
pivot.TableRange1.Cells[countRows, countColumns].ShowDetail = true;