主题
概述
WebOffice SDK 除了提供基础的初始化配置以及一些常用的实例属性和方法之外,还提供了丰富的 API 对各类文档进行操作,您可以直接通过实例上的Application属性获取到该文档应用的 API 对象,然后通过该对象对文档进行内容的更新、格式的设置和窗体的管理等一系列操作。API 风格与 VBA 一致,原则上是兼容 VBA 的接口和参数的。
JSSDK
的 API 接口按不同的文档类型进行了划分:
- 文字(Word):
doc
、docx
、wps
等后缀文件 - 表格(Excel):
xls
、xlsx
等后缀文件 - 演示(PPT):
ppt
、pptx
等后缀文件 - PDF:
pdf
等后缀文件 - 智能文档(Otl):
otl
后缀文件 - 多维表格(Dbt):
dbt
后缀文件
当然还有特殊目录:
- 公共:在文字(Word)、表格(Excel)、演示(PPT)、PDF、智能文档(Otl)、多维表格(Dbt)等文档都可以使用的 API
前提条件
在使用API之前,确保您已完成如下步骤:
- 已通过 WebOffice 控制台创建好 WebOffice 应用。
- 已按照要求实现回调服务的相关接口,并且在 WebOffice 控制台的回调配置内调试通过。
- 已在您的业务前端集成好我们的WebOffice SDK,并通过SDK正常初始化了文档。
调用流程
在下面的例子中,我们将以表格缩放为例来介绍一下 API 的调用流程。
步骤一:等待实例化完成
在调用 API 之前,需要先等待 ready()
方法执行完毕。
js
window.onload = async function () {
const instance = WebOfficeSDK.init({
// 必填项
officeType: WebOfficeSDK.OfficeType.Spreadsheet,
appId: 'xxxxx',
fileId: 'xxxxx'
})
// 需要等待实例 ready 之后再调用 API
await instance.ready()
}
步骤二:取得文档类型应用对象
您可以使用instance.Application
来自动获取文档应用对象,如果需要特指,也可以根据相应的字段取得文档对应的应用对象。
js
// 自动识别(推荐使用)
const app = instance.Application
// 根据类型获取应用对象
// 文字
const wordApp = instance.WordApplication()
// 表格
const excelApp = instance.ExcelApplication()
// 演示
const pptApp = instance.PPTApplication()
// PDF
const pdfApp = instance.PDFApplication()
提示
可以根据 WordApplication
、ExcelApplication
、PPTApplication
、PDFApplication
来判断当前是什么文档类型,下面文章中默认通过 instance.Application
自动识别文档类型。
步骤三:使用 API
这里以设置表格缩放比例为例,说明 API 的使用方式:
html
<script src="./web-office-sdk.umd.js"></script>
<script>
window.onload = async function () {
const instance = WebOfficeSDK.init({
// 必填项
officeType: WebOfficeSDK.OfficeType.Spreadsheet,
appId: 'xxxxx',
fileId: 'xxxxx'
})
// 等待加载完毕
await instance.ready()
// 自动识别
const app = instance.Application
// 操作窗口缩放比例
app.ActiveWindow.Zoom = 10
}
</script>
调用规则
索引序号
和 VBA 的规则一样,WebOffice 在线预览编辑服务也给非编程人员的使用提供方便。
所以在涉及索引调用的时候,尽可能从 1
开始(而不是从编程人员的 0
开始)。
以 Word(文字)中的表格为例,假如我们要删除文档中的第 1
个表格:
js
const instance = WebOfficeSDK.init({
// 必填项
officeType: WebOfficeSDK.OfficeType.Writer,
appId: 'xxxxx',
fileId: 'xxxxx'
})
async function example() {
await instance.ready()
const app = instance.Application
// 获取所有表格
const tables = await app.ActiveDocument.ActiveWindow.Selection.Tables
// 获取第 1 个表格
const tableOne = await tables.Item(1)
// 删除第 1 个表格
await tableOne.Delete()
}