質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2592閲覧

Python パワポのページ毎にエクセルのテキストを添付したい

mocajava

総合スコア12

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/06/07 02:02

編集2019/06/07 12:42

パワポのページ毎にエクセルのテキストを添付したい

先人のコードを活用し、エクセルのURLリストからweb巡回して画面をキャプチャーし、別のエクセルに添付した後、パワポに画像とURLを貼り付けるツールを作成しています。パワポに画像を貼り付けるところまでは出来るのですが、ページ毎に順番にURLを貼り付けることが出来ません。

発生している問題・エラーメッセージ

エラーは無いのですが上手くページ毎にテキストを貼れません。

該当のソースコード

Python

1ソースコード 2 #start power point and excel 3 PowerPoint=win32com.client.Dispatch("PowerPoint.Application") 4 Excel=win32com.client.Dispatch("Excel.Application") 5 6 #make a powerpoint file and an excel file 7 presentation=PowerPoint.Presentations.Add(True) 8 workbook=Excel.Workbooks.Open(Filename=excelfile,ReadOnly=1,UpdateLinks=False) 9 10 count =0 11 for ws in workbook.Worksheets: 12 for chart in ws.Shapes: 13 # Trim a picture 14 pf = chart.PictureFormat 15 pf.CropLeft = 20 16 pf.CropTop = 20 17 18 #copy picture to clipboard 19 chart.CopyPicture() 20 21 #Add a new blank slide to Power Point 22 Slide=presentation.Slides.Add(presentation.Slides.Count+1,12) 23 24 #paste the picture to the slide 25 p = Slide.Shapes.Paste() 26 p.Left=100 27 p.Top=100 28 29 #Add a text 30 textBox = Slide.Shapes.AddTextbox(Orientation=1, 31 Left=100,Top=10,Width=200,Height=50) 32 textBox.TextFrame.TextRange.Text = "Test Box" 33 print(count) 34 count = count+1 35 36 37### 試したこと 38 #Add a text 39 textBox = Slide.Shapes.AddTextbox(Orientation=1, 40 Left=100,Top=10,Width=200,Height=50) 41 textBox.TextFrame.TextRange.Text = "Test Box" 42 43の位置をcount=count+1の後に変えたりしたのですが、パワポの最後のページに全部重ねて添付されてしまいます。初心者でtextBox.TextFrame.TextRange.Textのような書き方を理解していないので...すみません。 44 45 46### 補足情報(FW/ツールのバージョンなど) 47 48ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

##Count the number of Xls's sheets
import xlrd
book = xlrd.open_workbook('capture1.xlsx')
print('--------------------------------')
print(book.nsheets)
print('--------------------------------')

for name in book.sheet_names(): print(name) ##Paste Xls sheet's names as PPT pages' titles for i in range(1, book.nsheets+1): Slide = presentation.Slides(i) TextBox = Slide.Shapes.AddTextbox(Orientation=1,Left=10,Top=10,Width=200,Height=50) TextBox.TextFrame.TextRange.Text = book.sheet_names()[i-1] print(i)

投稿2019/06/21 11:36

編集2019/06/25 03:54
mocajava

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問