为了账号安全,请及时绑定邮箱和手机立即绑定

在 C# 中激活数据透视表总计的显示详细信息

在 C# 中激活数据透视表总计的显示详细信息

C#
至尊宝的传说 2022-11-22 16:39:07

我正在尝试使用 C# 从 Excel 自动创建数据透视表的“显示详细信息”


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;

该代码有效,但它仅显示第一个“总计”值的详细信息。但我想要的是获得“总计”的“显示详细信息”。在这种情况下,对于这个数据透视表,它将创建一个包含 4 个元素的新工作表,但我想要的是总计 (202)。

http://img4.sycdn.imooc.com/637c8ac00001d25603990136.jpg

我试过先选择它,pivot.PivotSelect("Grand Total");但仍然没有结果。我也检查过pivot.RowGrandpivot.ColumnGrand它们都返回 True。



查看完整描述

2 回答

?
当年话下

TA贡献1586条经验 获得超9个赞

如果您的数据透视表同时具有RowGrandAND 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;


查看完整回答
反对 回复 2022-11-22
?
白衣非少年

TA贡献865条经验 获得超0个赞

也许可以帮助

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


查看完整回答
反对 回复 2022-11-22
  • 2 回答
  • 0 关注
  • 8 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信