簡體   English   中英

如何從C#(Microsoft.Office.Interop.Excel)中的數據透視表對象獲取可見的PivotField對象

[英]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()確實是一個方法 ,因此上面的語法是正確的。 但是, VisibleFieldsProperty而不是方法,因此您需要省略括號以使其起作用:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM