23 其他话题

时间:2022-09-03 06:40:40


23  其他话题

23.1Web服务
雅虎金融股票报价器

23.2用Win32的COM(即ActiveX)来操作MS OFFICE
#包括 Windows API、进程、MFC、多线程、服务、远程访问、管道、COM服务端编程和事件
#启动一个应用程序,并允许代码访问该应用程序提供的方法,成为客户端的COM编程。
#实现一个COM对象供其他客户端调用则成为服务端的COM编程。
启动应用程序
打开要编辑的文档
显示应用程序(如果有必要的话)
对文档做一定操作
保存或放弃文档
退出

#excel.pyw
from Tkinter import Tk
from time import sleep
from tkMessageBox import showwarning
import win32com.client as win32

warn=lambda app:showwarning(app,'EXIT?')
RANGE=range(3,8)
def excel():
app='EXCEL'
xl=win32.gencache.EnsureDispatch('excel.Application')
ss=xl.Workbooks.Add()
xl.Visible=True
sh=ss.ActiveSheet
sleep(1)

sh.Cells(1,1).Value='Python -to -%s demo'%app
sleep(1)
for i in RANGE:
sh.Cells(i,1).Value='Line %d'%i
sleep(1)
sh.Cells(i+2,1).Value="Th-th-th-that's all folks!"

warn(app)
ss.Close(False)
xl.Application.Quit()

if __name__=='__main__':
Tk().withdraw()
excel()

#word.pyw
from Tkinter import Tk
from time import sleep
from tkMessageBox import showwarning
import win32com.client as win32

warn=lambda app:showwarning(app,'EXIT?')
RANGE=range(3,8)
def word():
app='Word'
word=win32.gencache.EnsureDispatch('%s.Application'%app)
doc=word.Documents.Add()
word.Visible=True
sleep(1)

rng=doc.Range(0,0)
rng.InsertAfter('Python-to-%s Test \r\n\r\n'%app)
sleep(1)
for i in RANGE:
rng.InsertAfter('LINE %d \r\n'%i)
sleep(1)
rng.InsertAfter("\r\nTh-th-th-that's all folks!\r\n")

warn(app)
doc.Close(False)
word.Appliction.Quit()

if __name__=='__main__':
Tk().withdraw()
word()

#powerpoint.pyw
from Tkinter import Tk
from time import sleep
from tkMessageBox import showwarning
import win32com.client as win32

warn=lambda app:showwarning(app,'EXIT?')
RANGE=range(3,8)
def ppoint():
app='PowerPoint'
ppoint=win32.gencache.EnsureDispatch('%s.Application'%app)
pres=ppoint.Presentations.Add()
sleep(1)

s1=pres.Slides.Add(1,win32.constants.ppLayoutText)
sleep(1)
sla=s1.Shapes[0].TextFrame.TextRange
sla.Text='Python -to -demo'
sleep(1)
s1b=s1.Shapes[1].TextFrame.TextRange
for i in RANGE:
s1b.InsertAfter("Line %d \r\n"%i)
sleep(1)
s1b.InsertAfter("\r\n\TH- th-th-that`s all folks!")

warn(app)
pres.Close()
ppoint.Quit()


if __name__=='__main__':
Tk().withdraw()
ppoint()


23.3 用Jython写Python和JAVA的程序
#优点在可以使用本地异常处理和java的垃圾收集器
#有了对java类的访问能力
#得到java库中丰富的API,同时得到Python的强大表达能力
#Swing GUI 开发



相关文章