[英]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.