通过调用高级接口可用于直接操作文档。本文中的demo对象是指JS-SDK实例化后的对象。
说明 JS-SDK提供的接口风格与VBA一致,原则上兼容VBA的接口和参数。
调用流程
- 等待ready。
await demo.ready() //等待demo ready后再调用高级接口。
- 获取文档类型的应用对象。
根据WordApplication、ExcelApplication、PPTApplication、PDFApplication判断当前的文档类型。
//文档类型为文字类型。 const wordApp = demo.WordApplication() //文档类型为表格类型。 const excelApp = demo.ExcelApplication() //文档类型为演示类型。 const pptApp = demo.PPTApplication() //文档类型为PDF类型。 const pdfApp = demo.PDFApplication() //自动识别文档类型。 const app = demo.Application
- 调用高级接口。
此处以文字导出PDF为例介绍。
//将文字文档导出为PDF文档类型。 async function exportPdf() { await wordApp.ActiveDocument.ExportAsFixedFormat() }
释放对象
由于iframe的跨域安全限制,无法直接调用iframe内部的函数和变量,JS-SDK提供的高级接口对象只是iframe内部对象的映射,通过postMessage进行通信,示意图如下图所示,所以部分对象需要手动释放。
说明 需要手动释放的对象均会在文档中说明,请以文档说明为准。
系统支持单个或批量释放对象。
- 单个释放对象
代码示例
const app = demo.ExcelApplication() //例如表格获取WorkSheet对象。 const sheet = demo.Sheets.Item("sheet1") //此时得到的sheet对象只是一个映射对象,它拥有iframe内部对象的所有属性和方法,该对象的所有属性和方法都会映射到iframe内部。 sheet.Activate() //切换sheet。 //...do something //不需要该对象时,手动释放,此时会通知iframe内部销毁对应的对象。 sheet.Destroy()
- 批量释放对象
当有多个对象需要销毁时,可以按照区间批量释放对象。
代码示例const stack1 = app.Stack() //do something stack1.End() //释放在stack1区间的对象。