【在WPS里学Python】丨1.2:🚀如何通过API接口操作WPS智能表格

Lv.2潜力创作者
👍学习从什么时候开始都不晚:我要开始学习了
不用下载, 打开WPS智能表格--PY脚本, 立即开学!
| 📢 | 很多学习Python的小伙伴,其实就是为了上班更轻松: 👉 数据自动更新到表格、报表等 例如:
|
| ⭐ | 这次我们来学习调用接口,只用到一个三方库,超级简单!一看就会! |
| 🚫 | 前面我们学习过: 例如: 但是它有个限制。 🚫 只能操作当前打开的表格 |
| 💡 | 如果: 怎么办? 这时候就需要: API接口 |
| 💡 | 其实不用把API想得太复杂。 你可以把它理解成: 👉 软件之间交流的语言。 例如: Python告诉WPS: 👉 我要读取数据 或者: 👉 我要修改数据 WPS收到以后: 👉 帮你完成操作 这就是API接口最核心的作用。 |
- 创建应用
| 💡 | 首先打开: WPS开放平台 |
| 💡 | 创建一个: 👉 企业自建应用 填写:
即可。 |
| 💡 | 这里可以简单理解成: 给你的Python程序办一张身份证。 后面所有接口调用。 都要依赖这个应用身份。 |
二、申请权限
| 💡 | 进入: 👉 权限管理 |
| 💡 | 搜索:表格 申请所有和表格相关的权限 |
| 💡 | 没有权限。 后面代码再正确,也无法调用。 |
三、发布应用
| 💡 | 进入: 👉 版本管理 点击发布。 |
| 💡 | 要注意: 创建应用 ≠ 发布应用 等待公司管理员进行审核,如果自己有管理权限的话,点击下方链接进行审核: |
四、获取应用ID和密钥
| 💡 | 进入: 👉 应用信息 |
| 💡 | 可以看到:
|
| 💡 | 可以简单理解成: 后面获取权限时要用到。 |
五、获取文件ID
| 💡 |
|
| 💡 | 可以看到下方的文件ID |
| 💡 | 这是每个文件独一无二的编号,用这个号码才知道修改哪个文档。 |
六、写代码
| 💡 | 还记的我们在https://bbs.wps.cn/topic/85219中提到的吗:学会查文档=解锁自主探索能力! 现在基础信息已经准备好了, 我们开始根据WPS开放平台文档,进行开发: https://open.wps.cn/documents/app-integration-dev/wps365/server/introduce |
1.我们需要先获取:access_token
代码:
应用ID = "应用ID"
应用密钥 = "密钥"
import requests
def 获取访问令牌():
响应 = requests.post(
"https://openapi.wps.cn/oauth2/token",
data = {"grant_type":"client_credentials", "client_id":应用ID, "client_secret":应用密钥}
)
访问令牌 = 响应.json()['access_token']
return 访问令牌
print(获取访问令牌())| 💡 | 这里其实和很多网站登录一样。 |
| 💡 | 输入: 返回: 相当于获得了一张临时通行证。 |
2. 获取sheet_id
代码:
def 获取工作表ID(访问令牌):
响应 = requests.get(
f"https://openapi.wps.cn/v7/airsheet/{文件ID}/worksheets",
headers= {"Authorization":f"Bearer {访问令牌}"}
)
print(响应.text)
工作表ID = 响应.json()['data']['sheets']["name" == "工作表1"]['sheet_id']
return 工作表ID
print(获取工作表ID(访问令牌))| 💡 | 这里获取了名为"工作表1"的sheet_id |
3. 更新A1单元格
代码:
def 更新A1(访问令牌, 工作表ID, 内容):
响应 = requests.post(
f"https://openapi.wps.cn/v7/airsheet/{文件ID}/worksheets/{工作表ID}/range_data/batch_update",
headers= {"Authorization":f"Bearer {访问令牌}"},
json = {"range_data" : [{
"op_type":"cell_operation_type_formula",
"formula":内容
}]}
)
return 响应.json()
print(更新A1(访问令牌,工作表ID,"我是尊贵的WPS会员。"))| 💡 | 就是告诉WPS,我要在哪个工作薄的哪个工作表中,上传什么数据。 |
七、让AI帮你写代码
| 😎 | 这里顺便说一句。 现在完全可以把文档丢给AI。 然后告诉它: |
| 😎 | 很多时候: AI一次就能生成正确代码。 |
| 😎 | 然后: 👉 测试 👉 调整 👉 修复报错 即可。 |
AI直接生成代码, 略微修改:
import requests
# ========== 配置区域 ==========
应用ID = "应用ID"
应用密钥 = "密钥"
文件ID = "文件ID"#右键点击表格标签,文档信息中
目标工作表名称 = "工作表1"
# ============================
def 获取访问令牌():
响应 = requests.post(
"https://openapi.wps.cn/oauth2/token",
headers={
"Content-Type": "application/x-www-form-urlencoded"
},
data={
"grant_type": "client_credentials",
"client_id": 应用ID,
"client_secret": 应用密钥
}
)
响应.raise_for_status()
return 响应.json()["access_token"]
def 获取工作表ID(访问令牌):
请求头 = {
"Authorization": f"Bearer {访问令牌}"
}
响应 = requests.get(
f"https://openapi.wps.cn/v7/airsheet/{文件ID}/worksheets",
headers=请求头
)
响应.raise_for_status()
工作表列表 = 响应.json()["data"]["sheets"]
for 工作表 in 工作表列表:
if 工作表["name"] == 目标工作表名称:
return 工作表["sheet_id"]
raise Exception(f"未找到工作表:{目标工作表名称}")
def 更新A1(访问令牌, 工作表ID, 内容):
请求头 = {
"Authorization": f"Bearer {访问令牌}",
"Content-Type": "application/json"
}
数据 = {
"range_data": [
{
"row_from": 0,
"row_to": 0,
"col_from": 0,
"col_to": 0,
# 根据文档:
# formula = 公式或内容
"op_type": "cell_operation_type_formula",
"formula": 内容
}
]
}
响应 = requests.post(
f"https://openapi.wps.cn/v7/airsheet/{文件ID}/worksheets/{工作表ID}/range_data/batch_update",
headers=请求头,
json=数据
)
响应.raise_for_status()
return 响应.json()
# ========= 主程序 =========
访问令牌 = 获取访问令牌()
工作表ID = 获取工作表ID(访问令牌)
结果 = 更新A1(
访问令牌,
工作表ID,
"我是尊贵的WPS会员。"
)
print("更新结果:")
print(结果)| 📌 | AI生成的代码更加规范,更加通用全面。 |
| 📌 | 虽然代码写了很多行, 但是运行起来就几秒的事: (我觉得这个运行速度还是挺慢的) |
七、代码核心流程
| 📌 | 其实核心流程只有三步: 获取访问令牌 ↓ 获取工作表ID ↓ 修改单元格 |
| 📌 | 飞书/钉钉/腾讯文档,市面大多数开放平台逻辑其实都差不多。 找到开发文档,把文档直接发给AI,让AI写代码; 现在直接让AI根据某平台来写代码,正确率也很高。 懂得Python一些基本原理之后,自己修改也很容易,给AI的提示词也会写得更加精准。 |
| 🥳 | 恭喜! 你已经成功学会用Python修改云端智能表格。 |
| 🔥 | 这意味着: 以后可以: 自动生成日报 自动同步后台数据 自动更新看板 自动写入AI分析结果 自动推送运营数据 |
| 🎉 | 小结 & 成就感 💡 你已经学会: ✅ 创建WPS开放平台应用 ✅ 配置权限 ✅ 发布应用 ✅ 获取应用ID和应用密钥 ✅ 获取Access Token ✅ 获取工作表ID ✅ 修改智能表格 ✅ 第一次调用真实开放平台接口 ✅ 给AI喂开发文档,让AI生成代码 |
✍️试着自己用AI生成代码,并且将整个流程跑通吧
📸 未来属于终身学习者:我要开始学习了
Lv.2潜力创作者
Lv.2潜力创作者
Lv.2潜力创作者
Lv.3优质创作者
Lv.2潜力创作者
Lv.2潜力创作者
Lv.2潜力创作者
Lv.2潜力创作者