2011-07-12 17 views
3

すでにワークシートに作成されたテーブルのデータに基づいてピボット・チャートを作成するにはどうすればよいですか?c#を使用してexcelでピボットチャートを追加するにはどうすればよいですか?

+0

便利なリンク:http://social.msdn.microsoft.com/Forums/en-AU/vsto/thread/8baa20f4-05b5-4833-a8cc-791cea951dc8 –

+0

からこれはピボットテーブルを作ることができましたが、これをチャートにするにはどうすればいいですか? – Sam

答えて

4

このような何か試してみてください:

  Microsoft.Office.Interop.Excel.PivotTable pivotCache = Globals.ThisAddIn.Application.ActiveWorkbook.PivotCaches(). 
       Create(Microsoft.Office.Interop.Excel.XlPivotTableSourceType.xlDatabase, hoursTable2, XlPivotTableVersionList.xlPivotTableVersion12). 
       CreatePivotTable("PivotTable!R1C1", "PivotTable1", Type.Missing, XlPivotTableVersionList.xlPivotTableVersion12); 
      Microsoft.Office.Interop.Excel.Shape myChart = lPivotWorksheet.Shapes.AddChart(); 
      myChart.Chart.SetSourceData(pivotCache.TableRange1, Type.Missing); 

      Globals.ThisAddIn.Application.ActiveWorkbook.ShowPivotChartActiveFields = true; 

      Microsoft.Office.Interop.Excel.PivotField rowField = (Microsoft.Office.Interop.Excel.PivotField)pivotCache.PivotFields("FieldTitle1"); 
      rowField.Orientation = Microsoft.Office.Interop.Excel.XlPivotFieldOrientation.xlRowField; 

      pivotCache.AddDataField(pivotCache.PivotFields("FieldTitle2"), "Sum of Difference", Microsoft.Office.Interop.Excel.XlConsolidationFunction.xlSum); 

      Microsoft.Office.Interop.Excel.PivotField pageField = (Microsoft.Office.Interop.Excel.PivotField)pivotCache.PivotFields("FieldTitle3"); 
      pageField.Orientation = Microsoft.Office.Interop.Excel.XlPivotFieldOrientation.xlPageField; 

      myChart.ScaleHeight(2, Microsoft.Office.Core.MsoTriState.msoFalse, Type.Missing); 
      myChart.ScaleWidth(2, Microsoft.Office.Core.MsoTriState.msoFalse, Type.Missing); 
      myChart.Left = 200; 
      myChart.Top = 120; 
      myChart.Chart.ChartTitle.Caption = "Chart Title"; 
0

Berbies答えは右のトラックに私を置きます。私は自分のコードが読みやすくなると信じています。ピボットテーブルは、this linkのドキュメントを使用して作成されました。私はExcelを使用している2007年

 // assign the new pivot table 
     PivotTable pivotTable = (PivotTable)pivotSheet.PivotTables("pivotTableName"); 

     // Create a pivot chart using a pivot table as its source 
     Shape chartShape = pivotSheet.Shapes.AddChart(); 
     chartShape.Chart.SetSourceData(pivotTable.TableRange1, Type.Missing); 
     CurrentWorkbook.ShowPivotChartActiveFields = true; 
     chartShape.Chart.ChartType = XlChartType.xlAreaStacked; 
関連する問題