[英]How to get Visible PivotField Object from a PivotTable object in C#(Microsoft.Office.Interop.Excel)
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#中的PivotFields()
确实是一个方法 ,因此上面的语法是正确的。 但是, 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
}
疯狂吧?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.