前提・実現したいこと
Python初心者です。Powerpointレポートを大量に作成する仕事をしています。
100枚以上あるPPTの各スライドに貼ってあるグラフ(グラフにはExcelが埋め込まれている)すべてに関して、埋め込まれているExcelデータの値をコピーし、整理用のExcelにペーストしたいです。
発生している問題・エラーメッセージ
Python pptxを利用してグラフを作成、値の変更することは実現できていますが、グラフに埋め込まれたExcelデータにアクセスし、データを取得してExcelに転記する方法がわかりません。
該当のソースコード
こちらのコードでグラフの作成までできています。
1枚づつスライドをたどって、そのページにグラフがあれば埋め込みExcel内のデータフレーム(行ラベル、列ラベル、値)を取得し、整理用のExcelへ転記し、次のページへ、、ということを実現したいです。
以下のコードで例えると、作成されたグラフの埋め込みデータである
['East', 'West', 'Midwest']
'Series 1', (19.2, 21.4, 16.7)
に後からアクセスし、データフレームに格納し、転記するようなことが実現したいことのイメージになります。
Pythonここに言語名を入力
1from pptx import Presentation 2from pptx.chart.data import CategoryChartData 3from pptx.enum.chart import XL_CHART_TYPE 4from pptx.util import Inches 5 6# create presentation with 1 slide ------ 7prs = Presentation() 8slide = prs.slides.add_slide(prs.slide_layouts[5]) 9 10# define chart data --------------------- 11chart_data = CategoryChartData() 12chart_data.categories = ['East', 'West', 'Midwest'] 13chart_data.add_series('Series 1', (19.2, 21.4, 16.7)) 14 15# add chart to slide -------------------- 16x, y, cx, cy = Inches(2), Inches(2), Inches(6), Inches(4.5) 17slide.shapes.add_chart( 18 XL_CHART_TYPE.COLUMN_CLUSTERED, x, y, cx, cy, chart_data 19) 20 21prs.save('chart-01.pptx')
試したこと
上記コードを実行した後にchart_data.categoriesnを入力しても、格納された['East', 'West', 'Midwest']に再アクセスすることができません。初歩的な内容で恐れ入りますが、よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
あなたの回答
tips
プレビュー