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()