title: PPT 插件类型与技术选型 date: 2026-08-27 tags:
- PowerPoint
- WPS
- 插件选型
- Office Add-in status: active
PPT 插件类型与技术选型
“PPT插件”不是单一技术。先确定宿主,再看需要操作到什么程度。
AiPPT的选择
AiPPT采用组合方案:
| 平台 | 实现 |
|---|---|
| Windows PowerPoint | Add-in Express COM + C# + WPF/WebView2 |
| macOS PowerPoint | PPAM/VBA + Swift dylib + NSPanel/WKWebView |
| 私有化WPS | WPS JS加载项 + TaskPane/WebDialog |
| 共享页面 | React + TypeScript |
| 桌面程序 | Windows WPF、macOS SwiftUI |
页面可以共享,宿主API不能共享。项目通过TypeScript接口和module.method消息把两部分连接起来。
选择规则
目标是WPS
选WPS JS加载项。需要先确认目标WPS版本是否提供:
- Ribbon回调;
- TaskPane和WebDialog;
window.Application;- FileSystem;
- 需要的Shape和Slide API。
缺少的API只能降级、换实现或标记未支持。
目标是Windows PowerPoint
Office.js能完成全部需求时,优先Office Web Add-in。
出现以下需求时,改用COM插件:
- 复杂Shape、自由曲线或动画;
- PowerPoint事件和右键菜单;
- Windows文件、注册表或进程;
- WPF窗口和Custom Task Pane;
- 本地DLL、Open XML和图片处理工具。
目标是macOS PowerPoint
简单任务窗格可评估Office Web Add-in。需要PowerPoint原生入口和本地能力时,使用PPAM/VBA加Swift Bridge。
不需要进入PowerPoint
服务端生成和批量修改选Open XML。需要桌面交互时再加独立App。
插件类型
| 类型 | 宿主 | 技术 | 能力和限制 |
|---|---|---|---|
| COM/VSTO/Add-in Express | Windows PowerPoint | C#、Office Interop、WPF | PowerPoint对象模型完整;只能运行在Windows;需要安装和COM注册 |
| Office Web Add-in | PowerPoint Windows/macOS/Web | Manifest、Office.js、Web页面 | 跨平台部署方便;PowerPoint API范围有限;本地系统能力受限 |
| PPAM/VBA | PowerPoint Windows/macOS | PPAM、VBA、customUI | 能做Ribbon和PowerPoint对象操作;受宏安全和平台差异影响 |
| PPAM加Native Bridge | macOS PowerPoint | VBA、Swift dylib、WKWebView | 补足窗口、网络和本地能力;VBA与Native接口要同步维护 |
| WPS JS加载项 | WPS Windows/Linux/UOS | ribbon.xml、JavaScript、window.Application | 适合WPS私有化;不能直接用于Microsoft PowerPoint;API随WPS版本变化 |
| 桌面伴随程序 | Windows/macOS | WPF或SwiftUI | 能处理文件、下载和更新;拿不到宿主内实时选区事件 |
| Open XML程序 | 无宿主 | Open XML SDK或ZIP/XML | 适合服务端和批处理;不能代替PowerPoint渲染和交互 |
能力比较
| 需求 | COM | Office.js | PPAM/VBA | WPS JS | Open XML |
|---|---|---|---|---|---|
| Windows PowerPoint完整对象模型 | 已实现 | 部分 | 部分 | 不适用 | 不适用 |
| macOS PowerPoint | 不适用 | 已实现 | 已实现 | 不适用 | 文件级 |
| WPS Linux/UOS | 不适用 | 不适用 | 不适用 | 已实现 | 文件级 |
| 自定义Ribbon | 已实现 | 有限制 | 已实现 | 已实现 | 不适用 |
| 停靠任务窗格 | 已实现 | 已实现 | 无统一实现 | 已实现 | 不适用 |
| 本地文件和进程 | 已实现 | 受限 | 受限 | WPS范围内 | 已实现 |
| 复杂Shape和动画 | 已实现 | 受限 | 部分 | 取决于WPS | 受限 |
| 无Office运行 | 不适用 | 不适用 | 不适用 | 不适用 | 已实现 |