如何从C#(Microsoft.Office.Interop.Excel)中的数据透视表对象获取可见的PivotField对象

阿琼巴苏
 PivotTables pt = worksheet.PivotTables();
 var pivot = pt.Item(1);
 Microsoft.Office.Interop.Excel.PivotFields pf= 
(Microsoft.Office.Interop.Excel.PivotFields)pivot.VisibleFields();

上面的代码段应该返回数据透视表中可见字段的集合,但是会生成MissingMemberException调用[PROPERTYGET,DISPID(0)]时出错),但是以下代码可以正常工作:

  Microsoft.Office.Interop.Excel.PivotFields pf= 
  (Microsoft.Office.Interop.Excel.PivotFields)pivot.PivotFields();

我只想要表中的可见字段,而不想要所有字段。

火腿骨

在将VBA转换为C#方面,我面临的最大挑战之一是VBA模糊了何时需要括号的函数和不需要括号的函数之间的界限。

结果,当一个函数没有参数并且不需要括号时,它看起来更像一个属性。情况就是这样PivotFields

因此,PivotFields()在C#中所有所说的确实是一个method,因此您上面的语法是正确的。但是,VisibleFields它是Property而不是方法,因此您需要省略括号以使其起作用:

Excel.PivotTables pt = worksheet.PivotTables();
var pivot = pt.Item(1);

Microsoft.Office.Interop.Excel.PivotFields vf = pivot.VisibleFields;
                                       // not   pivot.VisibleFields();
foreach (Microsoft.Office.Interop.Excel.PivotField f in vf)
{
    // Do something
}

疯狂吧?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

C#使用Microsoft.Office.Interop.Excel读取数据

Office 2007的Microsoft.Office.Interop.Excel

如何在C#中使用Microsoft.Office.Interop.Excel添加数据透视表筛选器

如何使用 Microsoft.Office.Interop.Word 在 C# 中编辑 docx 文件

如何在SSIS C#脚本任务中添加Microsoft Office Interop

C#-Microsoft.Office.Interop.Excel.Sheets到Microsoft.Office.Interop.Excel.Worksheet []

Microsoft.Office.Interop.Excel的阅读范围

使用Microsoft Office Interop Excel使用C#在excel图表中自定义数据标签

带有C#的Microsoft.Office.Interop.Word-标识现有目录对象

无法将类型为“ microsoft.Office.Interop.Excel.ApplicationClass”的COM对象转换为“ microsoft.Office.Interop.Excel.Application”

C#阅读使用的Microsoft.Office.Interop.Excel Excel单元格的值

使用Microsoft.Office.Interop.Excel的C#从其他WorkSheet添加新系列和范围

Microsoft.Office.Interop.Word:在C#中为图像添加标题

Build Server中的Microsoft.Office.Interop.Excel参考

C# Microsoft.Office.Interop.Word 保护段落

使用参考C#添加Microsoft.Office.InterOp.Word

是否有Microsoft.Office.Interop.Excel的替代库?

使用Microsoft.Office.Interop Word和Excel

Microsoft.Office.Interop.Excel未注册DLL

Microsoft.Office.Interop.Excel读取错误的颜色?

无法添加对microsoft.office.interop.excel的引用

C#(Microsoft.Office.Interop.Excel),将数据另存为Excel 2003文件(xls)

VS2017中缺少Microsoft.Office.Interop.Outlook

在SharePoint 2010中使用Microsoft Office 2013 Interop dll

如何通过Office.Interop.Excel C#打开Excel文件的流或base64

使用Microsoft.Office.Interop.Excel时出现错误;带有C#中控件新点语法的名称空间

如何使用office.interop.word库在c#中的表格中插入标题

Office.Interop.Outlook.MailItem 如何获取本地文件的路径

在BluePrism中引用Office Interop对象