Python操作WPS开发API
东西太多懒得改格式了,如果不舒服可以的
WPS 重要API(表格部分)
开始
简介
本⽂中所有的测试都是在Python 3.8.5的环境中进⾏实现的,IDE为Pycharm
引⽤的库主要是Pywin32,通过该库直接调⽤WPS提供的开发API,因此必须在计算机上安装WPS,迁移时记得在⽬标主机上安装需要的依赖库(当然也可以直接打包成exe)
由于这种⽅式直接就是操纵WPS,因此完全可以⽤⼀样的⽅式去调⽤Excel,但需要根据Office官⽅提供的⼆次开发库做⼀⼩部分修改(迁移幅度应该不⼤,因为这其间具有⼀整套API标准)
快速测试
导⼊库
# 必须引⼊client,直接引⼊win32com可能报错
import win32com.client
声明application(加载wps的表格)
# 实际上测试excel时也可以直接这样做
application = win32com.client.Dispatch('Excel.Application')
打开WPS⽂件
# Path指的是本地表格⽂件的路径,⽐如:
# Path = r"c:\Users\Aine\Desktop\a.xlsx"
# 通过Win32的⽅式并不限制xls和xlsx(因为操作是wps在做)
workbook = application.Workbooks.Open(Path)
读取表格⽂件中的表
# Sheet指的就是表名(注意不是⽂件名)
worksheet = workbook.Worksheets(Sheet)
修改单元格的内容
worksheet.Cells(1, 1).Value = 'Hello World'
修改表名称
worksheet.Name = 'MySheet'
保存并退出
# Path是指要将⽂件保存到哪⼀个位置
getsavefilenameworksheet.SaveAs(Path)
操作完成后退出表格⽂件
# 注意,此处退出的是⽂件,⽽不是WPS程序
# 相当于在WPS中关闭了⽂件
# 如果操作完表格不关闭⽂件,极有可能会造成⽂件⽆法打开
workbook.Close()
最后⼀定要记得退出ET(表格)
application.Quit()
流程概况
1. 加载Application
2. 通过Application获取Workbook
3. 通过Workbook的Worksheets获取Worksheet
4. 根据获取到的表对数据进⾏操作
5. 保存修改/另存为
6. 关闭Workbook(⽂件)
7. 关闭Application(ET)
重要API
Application
参考
Application相当于WPS中表格的主程序(也称为et),在Python + Pywin32中,⾸先要通过Dispatch加载程序
重要⽅法
FindFile和GetOpenFilename(打开⽂件对话框)
# FindFile⽅法
# 该⽅法属于Application对象的⽅法,调⽤后会前台显⽰WPS界⾯,并弹出打开⽂件对话框。 # 注意,该对话框不会返回打开⽂件的路径,但会返回是否打开成功
# 当选择了⼀个⽂件,会在前台打开该⽂件
Application.FindFile()
# GetOpenFilename⽅法
# 和FindFile⽅法不同,这个⽅法并不会前台打开⽂件,⽽是弹出⼀个打开⽂件对话框
# 该⽅法返回的值是⽂件的全路径
# 通常有需要的情况下是使⽤GetOpenFilename⽅法
Application.GetOpenFilename()
GetSaveAsFilename(弹出另存为对话框)
# GetSaveAsFilename⽅法
# 该⽅法和GetOpenFilename类似,都不会真正的进⾏另存为操作,⽽是返回⽤户选择的全路径 Application.GetSaveAsFilename()
InputBox(弹出⼀个接受⽤户输⼊的对话框)
# 该⽅法会弹出⼀个包含⼀个⽂本框的对话框,并返回⽤户的输⼊
# 该⽂本框可以接受多种数值,也可以指定其标题、初始值、位置以及返回值类型
# 具体参数参考官⽅⽂档↑↑↑
Application.InputBox("请输⼊密码","警告","123456")
Run和Wait
# Run⽅法⽤于运⾏⼀个宏或调⽤⼀个VB程序
# 注意,个⼈版⼀般是不⽀持宏调⽤的
# Wait⽅法⽤于暂停运⾏宏
Application.Run(要运⾏的宏)
# Wait会暂停ET的⼀切操作,当然不会暂停打印和重新计算
# 传⼊的值是必须的,含义是下⼀次继续运⾏的时间,⽐如Wait("12:20:00")
Application.Wait(继续运⾏的时间)
当然也可以暂停运⾏指定的时间,⽐如⼗分钟(官⽅例程)
let now = new Date()
let seconds = Time()
now.setTime(seconds + 1000 * 10)
Application.LocaleString())
Quit
# Quit⼏乎是最需要但最容易忘记的⽅法,它负责退出ET程序,注意,该⽅法要在退出表格⽂件之后执⾏
# 另外,如果有未保存的Workbook,ET会弹出对话框询问⽤户是否关闭,可以通过将Application中的DisplayAlerts设置为False(不显⽰信息,会直接不保存退出) Application.Quit()
重要属性
ActivePrinter(获取/设置打印机)
# String类型
Application.ActivePrinter
Build(获取ET内部版本号)
Application.Build
DisplayFullScreen(是否全屏)
# 指⽰ET当前是否为全屏状态,可读写(True 全屏; FaLse ⾮全屏)
Application.DisplayFullScreen
EnableSound(是否允许发声)
# 该属性指⽰ET是否可以发出声⾳,Boolean,可读写
Application.EnableSound
HighQualityModeForGraphics(⾼质量打印图形)
# Boolean
Application.HighQualityModeForGraphics
Hinstance(获取ET的句柄)
# 只读
Application.Hinstance
OperatingSystem(获取操作系统版本)
# 只读
Application.OperatingSystem
Path(获取WPS所在⽬录)
# 只读
Application.Path
PrintCommunication(测试打印机可达性)
Application.PrintCommunication
Ready(ET是否就绪)
# 判断ET是否准备就绪
Application.Ready
ScreenUpdating(屏幕更新)
# ⼀般设置为True,如果需要加快宏(包括Py脚本)运⾏,可以暂时设置为False
Application.ScreenUpdating
StatusBar(设置状态栏⽂字)
# 可以获取和设置ET下⽅状态栏的⽂本
Application.StatusBar
UserControl (判断窗⼝是否由⽤户打开)
# 如果⽤户创建或者ET可见,该值为True,如果以代码⽅式打开切应⽤程序隐藏,该值为False  Application.UserControl
UserName (获取系统⽤户名)
Application.UserName
Version(ET版本号)
Application.Version
Visible(是否可见)
# 确定ET是否可见(⼀般不⽤设置,如果设置可能造成运⾏时闪⼀下屏)
Application.Visible
Workbooks(打开的⼯作表)
# 最重要的属性之⼀,代表所有打开的ET⽂件
Application.Workbooks
# 可以通过它调取Open⽅法来打开ET⽂件
workbook = application.Workbooks.Open(Path)
Worksheets(Sheets集合)
# 代表Sheets集合
# 对于Application对象来说,该属性代表活动⼯作簿(⽂件)中的所有⼯作表(sheet)
Application.Worksheets
Workbook

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。