2012-03-07 2 views
2

Microsoft.Office.Interop.Excel.PivotFieldsプロパティを使用してピボットフィールドにNumberFormatを適用できます。しかし、それは合計フィールドに同じフォーマットを適用しません。私が紛失しているピボットテーブルの合計フィールドに別のプロパティがありますか?ピボットフィールドに数値フォーマットを適用する

Microsoft.Office.Interop.Excel.PivotFields pFields = pivotTable.PivotFields(); 
     foreach (Microsoft.Office.Interop.Excel.PivotField pf in pFields) 
      if (pf.DataType == XlPivotFieldDataType.xlNumber) 
       pf.NumberFormat = "#,##0.00"; 
+0

エクセルシート/列/行にピボットテーブルが作成されている数値フォーマットを設定できない理由はありますか? –

答えて

1

これらのメンバーのドキュメントは正確に結晶明確ではないですが、あなたがしたいプロパティがPivotTable.VisibleFieldsあるように周りを掘ると試行錯誤のビットの後に、それはあなたがにPivotFieldsオブジェクトにキャストする必要がある、見えます反復処理:(唯一のあなたの行ラベルの列とその下にあるソースデータを与えるように思わPivotTable.PivotFields()ではなく)

Excel.PivotFields vFields = (Excel.PivotFields)pivotTable.VisibleFields; 

これはあなたのテーブル内のすべての表示のフィールドを提供します。あなたが取得したい場合は

foreach (Excel.PivotField pf in vFields) 
{ 
    if (pf.DataType == Excel.XlPivotFieldDataType.xlNumber 
     & pf.Value == "Sum of Price") 
    { 
     pf.NumberFormat = "#,##0.00"; 
    } 
} 

:あなたは、あなたが望むものではないかもしれません、私はそれがテーブルにすべてのものに適用されます信じているそれ以外の数値の書式を設定する前に、各1の値をチェックする必要がありますある特定のセル、そしてあなたがPivotField.PivotItemsにアクセスし、各PivotFieldオブジェクト用のものを反復処理することができます

Excel.PivotItems pi = (Excel.PivotItems)pf.PivotItems(); 

しかし、私はPivotItemのプロパティのほとんどは読み取り専用されていると思います。

関連する問題