# -*- coding: utf-8 -*-
'''
win32com_FromHXBC.py
深入:
https://pypi.org/project/xlwt/ xlwt官方文档
https://pypi.org/project/xlrd/ xlrd官方文档
http://www.openoffice.org/udk/python/python-bridge.html
使用:
excel.pyw
From 核心编程
'''
# =============================================================================
# #自建函数 自动打开excel、word应用,并添加数据。
# =============================================================================
import tkinter as tk
from time import sleep
from tkinter.messagebox import showwarning #引入视窗设计模块,用来最后弹出提示框
import win32com.client as win32 #引入 组件对象模型 客户端编程
warn=lambda app: showwarning(app,'Exit?') #匿名函数弹出提示框 参数(标题,内容)
RANGE=range(3,8)
#自建函数
#自动打开excel,并写入数据
def excel():
app='Excel'
xl=win32.gencache.EnsureDispatch('%s.Application'%app) #静态调度 打开应用 区别于动态调度(win32com.client.Dispatch())
ss=xl.Workbooks.Add() #添加工作簿
sh=ss.ActiveSheet #获取活跃表单
xl.Visible=True #工作簿可见
sleep(1) #暂停1秒,以看清步骤
sh.Cells(1,1).Value='Python-to-%s Demo'%app #单元格1行1列添加数据
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 is all folks!' #循环添加数据完成后隔一行添加数据
warn(app) #匿名函数应用
ss.Close(False) #工作簿关闭 参数(不保存)
xl.Application.Quit() #应用退出
#自建函数
#自动打开word,并写入数据
def word():
app='Word'
word=win32.gencache.EnsureDispatch('%s.Application'%app) #静态调度 打开应用 区别于动态调度(win32com.client.Dispatch())
doc=word.Documents.Add() #添加word文档
word.Visible=True #显示可见
sleep(1) #暂停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 is all folks!\r\n') #末尾插入内容
warn(app) #匿名函数弹出提示框 参数(标题,内容)
doc.Close(False) #文档关闭,参数(不保存)
word.Application.Quit() #word程序退出
#主程序入口
if __name__=="__main__":
tk.Tk().withdraw() #Tk顶层窗口隐藏,只为最后显示提示框即可
excel() #自动打开excel,并写入数据
word() #自动打开word,并写入数据。
win32com模块 office客户端编程相关
最新推荐文章于 2025-04-15 22:07:47 发布