2017-06-08 4 views
0

Pythonのwin32comでチャートデータテーブルへの参照を取得する方法は?Pythonのwin32comでは、チャートデータテーブルへの参照を取得する方法は?

import win32com 
    from MSO import constants as msoconst 

    Application = win32com.client.Dispatch("PowerPoint.Application") 
    Application.Visible = True 
    Presentation = Application.Presentations.Add() 

    FirstSlide = Presentation.Slides.Add(1, 12) 

... no problem adding slides, shapes and text and setting font size and color .... 

    InventoryChart = FirstSlide.Shapes.AddChart2(201,msoconst.xlColumnClustered ,10,80,470,220,False) # 0 = Clustered Column, 1 = Combo Area, 2 = Clustered Column 
    InventoryChartData = InventoryChart.ChartData 

ChartDataは動作しません:はAttributeError:「」オブジェクトが属性を持っていない「ChartData」のような

私は(PowerPointが別のウィンドウにそれをポップアップ)のデータテーブルとチャートを作成することができます

したがって、PowerPointで作成されたテーブルへの参照はどのように取得されますか?または、データに使用するテーブルを定義するにはどうすればよいですか?

答えて

1

私は戻って同じ質問をして、答えを見つけようと多くの時間を費やしました。

ChartDataはChartオブジェクトのプロパティです。したがって、ChartDataオブジェクトにアクセスするには、追加した図形がグラフであることをPowerPointに伝える必要があります。

これを行うには2つの方法があります。

# Option 1 - Add .Chart to end of AddChart2 method 
InventoryChart = FirstSlide.Shapes.AddChart2(201,msoconst.xlColumnClustered,10,80,470,220,False).Chart 

# Option 2 - Define Chart object separate from AddChart2 
InventoryChart = FirstSlide.Shapes(1).Chart 

# You can now access the chart's data worksheet 
InventoryChartData = InventoryChart.ChartData.Workbook.Worksheets(1) 

# Write a value to worksheet 
InventoryChartData.Range('F1').Value = 150 

# Apply numeric formatting to Series 1 values 
InventoryChartData.Range('B2:B5').NumberFormat = '0.00' 
関連する問題