DEV Community

Zhang Zhemin
Zhang Zhemin

Posted on

从 VBA 到 AI Agent:用 WPS 开放平台、JS 宏与 WebOffice API 构建下一代办公自动化工作流

从 VBA 到 AI Agent:用 WPS 开放平台、JS 宏与 WebOffice API 构建下一代办公自动化工作流

过去二十年,VBA 是企业办公自动化的默认答案。但随着 WPS 开放平台、JS 宏和 WebOffice API 的成熟,我们有机会把脚本升级为可维护、可协作、可智能决策的 AI Agent 工作流。本文从工程视角拆解迁移路径,并给出可落地的架构与代码。

1. 为什么 VBA 不够用了

VBA 优点:成熟、直接、能操作文档对象模型。局限:

  • 运行时绑定桌面客户端,难以云端化
  • 代码分散在文档中,版本管理困难
  • 跨平台与多端协同弱
  • 难以安全接入大模型与外部 API
  • 事件驱动和异步能力有限

WPS 生态提供了更现代的替代:JS 宏在客户端内运行,WPS 开放平台提供云文档、权限、事件回调,WebOffice API 则把文档能力嵌入 Web 应用。

2. WPS JS 宏:从 Sub 到 async/await

WPS JS 宏使用 JavaScript 语法操作文档。相比 VBA,它天然支持模块化、Promise、JSON、fetch(视环境)等能力。你可以从 WPS官网 获取最新版 WPS,完成 WPS下载 后启用 JS 宏。

简单示例:读取表格并生成汇总。

// [WPS](https://www.wps.com/) JS 宏示例:遍历工作表并统计
function summarize() {
  const sheet = Application.ActiveSheet;
  const used = sheet.UsedRange;
  let total = 0;
  for (let r = 2; r <= used.Rows.Count; r++) {
    const value = sheet.Cells.Item(r, 3).Value2;
    if (typeof value === 'number') total += value;
  }
  sheet.Cells.Item(used.Rows.Count + 2, 3).Value2 = total;
  return total;
}
Enter fullscreen mode Exit fullscreen mode

这段代码可以在 WPS 表格中直接运行。实际工程中,建议把业务逻辑拆成多个 js 模块,通过 import 或统一入口函数加载。

3. WPS 开放平台与 WebOffice API

WPS 开放平台提供身份认证、云文档、文件管理、事件订阅、Webhook 等能力。WebOffice API 则允许你在浏览器中嵌入在线文档,并调用文档对象模型。

典型架构:

  1. 前端通过 WebOffice API 加载云文档
  2. 后端通过 WPS 开放平台获取 access_token
  3. 业务服务订阅文档事件,如保存、审批、评论
  4. AI Agent 通过函数调用读写文档、生成内容、触发流程

示例:WebOffice 初始化。

<div id='weboffice-container'></div>
<script src='https://your-wps-open-platform-sdk.js'></script>
<script>
  const app = WebOfficeSDK.init({
    officeType: 'w',
    appId: 'your-app-id',
    fileId: 'your-file-id',
    token: 'your-token',
    container: document.getElementById('weboffice-container')
  });
</script>
Enter fullscreen mode Exit fullscreen mode

注意:生产环境不要在前端硬编码 token,应由后端签发短期凭证。

4. 构建 AI Agent 工作流

下一代办公自动化不是“写死脚本”,而是“目标驱动 + 工具调用”。Agent 负责理解意图、拆解任务、调用工具、校验结果。

推荐分层:

  • 交互层:WPS 客户端、WebOffice 页面、聊天入口
  • Agent 层:意图识别、计划、记忆、函数调用
  • 工具层:JS 宏、WebOffice API、WPS 开放平台 API、数据库、邮件
  • 文档层:WPS 云文档、本地文件、表格、演示、PDF
  • 安全层:OAuth、审计、权限、脱敏

一个 Agent 工具定义示例(伪 JSON Schema):

const tools = [
  {
    name: 'readSheetRange',
    description: '读取 [WPS](https://www.wps.com/) 表格指定区域',
    parameters: {
      type: 'object',
      properties: {
        fileId: { type: 'string' },
        range: { type: 'string' }
      },
      required: ['fileId', 'range']
    }
  },
  {
    name: 'writeSheetRange',
    description: '写入 [WPS](https://www.wps.com/) 表格指定区域',
    parameters: {
      type: 'object',
      properties: {
        fileId: { type: 'string' },
        range: { type: 'string' },
        values: { type: 'array' }
      },
      required: ['fileId', 'range', 'values']
    }
  }
];
Enter fullscreen mode Exit fullscreen mode

Agent 执行流程:

  1. 用户说:把本周销售表汇总,并生成周报。
  2. Agent 调用 readSheetRange 读取数据。
  3. Agent 调用计算工具聚合。
  4. Agent 调用 WebOffice API 写入汇总表。
  5. Agent 调用 WPS 开放平台 API 创建新文档或发送通知。
  6. Agent 返回结果并记录审计日志。

5. 从 VBA 迁移到 JS 宏的工程策略

不要一次性重写。建议:

  • 先封装 VBA 中的稳定函数为 JS 宏工具
  • 把硬编码路径改为配置项
  • 把同步逻辑改为异步任务
  • 引入单元测试与日志
  • WPS 开放平台事件替代轮询

迁移对照:

VBA WPS JS 宏 / WebOffice
Sub / Function function / async function
ThisWorkbook Application.ActiveWorkbook
Range('A1') sheet.Range('A1')
MsgBox Application.Alert 或前端 UI
On Error try/catch
本地文件 云文档 + 开放平台

6. 安全与合规清单

  • 最小权限:只申请必要的云文档 scope
  • 短期 token:避免长期凭证泄露
  • 审计日志:记录 Agent 的每次工具调用
  • 数据脱敏:敏感字段进入模型前先过滤
  • 人工确认:高风险写操作需要二次确认
  • 版本回滚:保留文档历史版本

7. 性能与部署建议

  • 批量读写:减少跨进程或跨网络调用
  • 缓存元数据:文件 ID、表结构、权限
  • 异步队列:耗时任务交给消息队列
  • 可观测性:指标、日志、链路追踪
  • 多端一致:WebOffice 与 WPS 客户端行为对齐

8. 结语

从 VBA 到 AI Agent,不是简单换语言,而是把办公自动化从“宏”升级为“工作流平台”。WPS 开放平台、JS 宏与 WebOffice API 提供了连接文档、数据和智能决策的桥梁。如果你准备开始,建议先访问 WPS官网 完成 WPS下载,再从一个小的 JS 宏工具开始,逐步接入 Agent 工具层。下一代办公自动化,属于能理解目标并可靠执行的工作流。

Top comments (0)