DispatchExメソッドを実行してPowerPointのオブジェクトを取得する。
それ以降はなんとなく関数を実行していく。
以下サンプル。
・powerpoint.py
- #!/bin/env python
- # -*- encoding: shift-jis -*-
- import sys
- import os
- import re
- import time
- import win32com.client, pythoncom
- from_path="test.ppt"
- pythoncom.CoInitializeEx(pythoncom.COINIT_APARTMENTTHREADED)
- ppt = win32com.client.DispatchEx('Powerpoint.Application')
- ppt_file = ppt.Presentations.open(from_path, False, False, False)
- slide_count = ppt_file.Slides.Count
- for slide_num in range(1, slide_count):
- print slide_num
- slides=ppt_file.Slides(slide_num)
- #################3
- #オブジェクト
- ##################
- for i in range(1,slides.Shapes.Count):
- print i
- try:
- print slides.Shapes(i).TextFrame.TextRange.Text
- except:
- pass
win32com.clientでExcelを操作する方法は以下のサンプル。
・ExcelSample.py
- #-*- coding:utf-8 -*-
- """
- win32モジュールを使用してExcelを操作するサンプル
- """
- import win32com.client
- #Excel.Applicationを起動
- xlApp=win32com.client.Dispatch("Excel.Application")
- #visible
- xlApp.Visible=1
- #workbooksを追加
- xlApp.Workbooks.Add()
- #シートを指定
- sheet=xlApp.Workbooks(1).Sheets(1)
- #シートの(1,1)に値を代入
- cellObj=sheet.Cells(1,1)
- cellObj.Value="Hello From Python"
- cellObj.Font.Size=18
- sheet.Range("A2:A5").Value=("A2","A2","A2","A2")
- sheet.Range("B2:C5").Value=(("B2","C2"),("B2","C2"),("B2","C2"),("B2","C2"))
- sheet.Range("A2:C5").Borders.Weight=2
- #ファイルの保存
- xlApp.Workbooks(1).SaveAs(Filename='output.xls')
- #終了
- xlApp.Quit()
グラフを描写するサンプル。
・ExcelGraphSample.py
- #-*- coding:utf-8 -*-
- """
- win32モジュールを使用してExcelを操作するサンプル
- """
- import win32com.client
- #data
- MyData = ( ('Name','Value'), ('A',5), ('B',2), ('C',3), ('D',7), )
- MyRange = "A1:B5"
- #Excel.Applicationを起動
- xlApp=win32com.client.Dispatch("Excel.Application")
- #visible
- xlApp.Visible=1
- #workbooksを追加
- xlApp.Workbooks.Add()
- #シートを指定
- sheet=xlApp.Workbooks(1).Sheets(1)
- #
- DataRange = sheet.Range(MyRange)
- DataRange.Value = MyData
- #ChartWizard
- xlChart=xlApp.Charts.Add()
- xlChart.ChartWizard( Source=DataRange ,
- Gallery =3 ,
- Format=None,
- PlotBy=2,
- CategoryLabels=1,
- SeriesLabels=1,
- HasLegend=1,
- Title='sample',
- CategoryTitle='NAme',
- ValueTitle='Value'
- )
- #シート上にグラフ作成
- xlChart2 = xlApp.Charts.Add()
- xlChart2.ChartWizard(DataRange, 2, None, 2, 1, 1, 1,'Sample01', 'Name', 'Value','Extra')
- xlChart2.Location(2, "Sheet1") #Sheet1に表示する
- xlChartObj = sheet.ChartObjects(1)
- CellC2 = sheet.Cells(2,3) #セルC2を基準に使う
- xlChartObj.Left, xlChartObj.Top = CellC2.Left, CellC2.Top #位置の設定
- xlChartObj.Width, xlChartObj.Height= CellC2.Left * 2, CellC2.Height * 10 #縦横サイズの設定
- #ファイルの保存
- xlApp.Workbooks(1).SaveAs(Filename='graph.xls')
- #終了
- xlApp.Quit()