# 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是指要将文件保存到哪一个位置
worksheet.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
> 参考 [WPS开放文档](https://open.wps.cn/docs/office)
>
> Application相当于WPS中表格的主程序(也称为et),在Python + Pywin32中,首先要通过Dispatch加载程序
##### 重要方法
###### FindFile和GetOpenFilename(打开文件对话框)
> [参考信息(FindFile)](https://qn.cache.wpscdn.cn/encs/doc/office_v11/index.htm?page=WPS%20%E5%8A%A0%E8%BD%BD%E9%A1%B9%E5%BC%80%E5%8F%91/%E8%A1%A8%E6%A0%BC%20API%20%E5%8F%82%E8%80%83/Application/%E6%96%B9%E6%B3%95/FindFile%20%E6%96%B9%E6%B3%95.htm)
>
> [参考信息(GetOpenFilename)](https://qn.cache.wpscdn.cn/encs/doc/office_v11/index.htm?page=WPS%20%E5%8A%A0%E8%BD%BD%E9%A1%B9%E5%BC%80%E5%8F%91/%E8%A1%A8%E6%A0%BC%20API%20%E5%8F%82%E8%80%83/Application/%E6%96%B9%E6%B3%95/GetOpenFilename%20%E6%96%B9%E6%B3%95.htm)
~~~
# FindFile方法
# 该方法属于Application对象的方法,调用后会前台显示WPS界面,并弹出打开文件对话框。