JS-SDK 提供了高级功能可直接对文档进行操作,以下是高级功能的调用流程。
1. 等待文档加载完成
await demo.ready() // 务必等待 demo ready 之后再调用高级 api,demo 对象是指 JS-SDK 实例化后的对象,参考使用说明->初始化
2. 获取文档对象
// 文字
const wordApp = demo.WordApplication()
// 表格
const excelApp = demo.ExcelApplication()
// 演示
const pptApp = demo.PPTApplication()
// PDF
const pdfApp = demo.PDFApplication()
// 自动识别
const app = demo.Application
3. 使用高级功能
以下对文字文件、表格文件、演示文件、PDF 文件等类型使用高级功能进行列举介绍,如需了解上述类型支持的文件格式,请参见 规则与限制。
文字文件
获取总页数
展开&收起 /*
* @param: WdInformation: {
* wdNumberOfPagesInDocument: 4
* }
* @return: {PagesCount: number, End: boolean}
*/
const app = demo.WordApplication()
const {Enum} = app
let totalPages = await app.ActiveDocument.Range.Information(Enum.WdInformation.wdNumberOfPagesInDocument)
if (totalPages.End) {
// 获取总页数是异步过程,仅当totalPages.End为true时,获取到的总页数才是准确的
console.log("加载完了!一共", totalPages.PagesCount, "页")
}
获取当前页
展开&收起 /*
* @param: WdInformation: {
* wdActiveEndPageNumber: 3
* }
* @return: number
*/
const app = demo.WordApplication()
const {Enum} = app
let currentPage = await app.ActiveDocument.Selection.Information(Enum.WdInformation.wdActiveEndPageNumber)
跳转到指定页
展开&收起 /*
* @param: { What?: WdGoToItem, Which?: WdGoToDirection.wdGoToAbsolute, Count?: number, Name?: string}
* WdGoToItem: {
* wdGoToPage: 1,
* }
* WdGoToDirection: {
* wdGoToAbsolute: 1
* }
* @return: number 返回跳转页
*/
const app = demo.WordApplication()
const {Enum} = app
const page = await app.ActiveDocument.Selection.GoTo(Enum.WdGoToItem.wdGoToPage, Enum.WdGoToDirection.wdGoToAbsolute, 10)
// 或者
const page = await app.ActiveDocument.Selection.GoTo({
What: Enum.WdGoToItem.wdGoToPage,
Which: Enum.WdGoToDirection.wdGoToAbsolute,
Count: 10
})
设置评论显示
展开&收起 /*
* @param: bool
* true 为显示, false 为隐藏
*/
// 隐藏评论
demo.WordApplication().ActiveDocument.ActiveWindow.View.ShowComments = false
设置目录显示
展开&收起 /*
* @param: bool
* true 为显示, false 为隐藏
*/
// 隐藏目录
demo.WordApplication().ActiveDocument.ActiveWindow.DocumentMap = false
视图缩放
展开&收起 /*
* @return: number
*/
await demo.WordApplication().ActiveDocument.ActiveWindow.View.Zoom.Percentage // 读取视图缩放比例
/*
* @param : 50 <= number <= 300 (缩放属性值在50%到 300%之间)
*/
demo.WordApplication().ActiveDocument.ActiveWindow.View.Zoom.Percentage = 100 // 设置视图缩放比例
表格文件
获取所有 sheet 名称
展开&收起const app = demo.ExcelApplication()
const Names = []
// For(start, end, step, handle)
await app.For(1, app.Sheets.Count, 1, async (Index) => {
Names.push(await app.Sheets.Item(Index).Name)
})
console.log(Names)
获取当前 sheet 名称
展开&收起const app = demo.ExcelApplication()
const name = await app.ActiveSheet.Name
切换到指定 sheet
展开&收起const app = demo.ExcelApplication()
const sheetIndex = 1 // sheets序号, 从1开始
app.Sheets.Item(sheetIndex).Activate() // 切换sheet
视图缩放
展开&收起 /*
* @return: number
*/
await demo.ExcelApplication().ActiveWorkbook.ActiveSheetView.Zoom // 读取视图缩放比例
/*
* @param : 10 <= number <= 500 (缩放属性值在10%到500%之间)
*/
demo.ExcelApplication().ActiveWorkbook.ActiveSheetView.Zoom = 100 // 设置视图缩放比例
演示文件
获取总页数
展开&收起 /*
* @return: number
*/
let totalPages = await demo.PPTApplication().ActivePresentation.Slides.Count
获取当前页
展开&收起 /*
* @return: number
*/
let totalPages = await demo.PPTApplication().ActivePresentation.SlideShowWindow.View.Slide.SlideIndex
跳转到指定页
展开&收起 /*
* @param: number
*/
await demo.PPTApplication().ActivePresentation.SlideShowWindow.View.GotoSlide(3) // 跳转到第三页
播放幻灯片
展开&收起await demo.PPTApplication().ActivePresentation.SlideShowSettings.Run()
退出播放
展开&收起await demo.PPTApplication().ActivePresentation.SlideShowWindow.View.Exit()
幻灯片下一步动画
展开&收起 await demo.PPTApplication().ActivePresentation.SlideShowWindow.View.GotoNextClick()
幻灯片上一步动画
展开&收起 await demo.PPTApplication().ActivePresentation.SlideShowWindow.View.GotoPreClick()
获取播放状态
展开&收起 /*
* @return: string ('preview' | 'play')
*/
let currentState = await demo.PPTApplication().ActivePresentation.SlideShowWindow.View.State
视图缩放
展开&收起 /*
* @return: number
*/
await demo.PPTApplication().ActivePresentation.View.Zoom // 读取视图缩放比例
/*
* @param : 1 <= number <= 400 (缩放属性值在1%到400%之间)
*/
demo.PPTApplication().ActivePresentation.View.Zoom = 100 // 设置视图缩放比例(非播放模式)
PDF 文件
获取总页数
展开&收起 /*
* @return: number
*/
let totalPages = await demo.PDFApplication().ActivePDF.PagesCount
获取当前页
展开&收起 /*
* @return: number
*/
let totalPages = await demo.PDFApplication().ActivePDF.CurrentPage
跳转到指定页
展开&收起 /*
* @param : { PageNum: number }
*/
let PageNum = 10
await demo.PDFApplication().ActivePDF.JumpToPage({PageNum})
设置页面渲染模式
展开&收起 /*
* 1:单页模式
* 0:多页模式
*/
demo.PDFApplication().ActivePDF.PageMode = 1 // 设置为单页模式
设置目录显示
展开&收起 /*
* true:显示目录
* false:隐藏目录
*/
demo.PDFApplication().ActivePDF.DocumentMap = true // 显示目录
视图缩放
展开&收起 /*
* @return: number
*/
await demo.PDFApplication().ActivePDF.Zoom // 读取视图缩放比例
/*
* @param : 1 <= number <= 400 (缩放属性值在1%到400%之间)
*/
demo.PDFApplication().ActivePDF.Zoom = 100 // 设置视图缩放比例
事件监听
展开&收起可以通过实例的 on 方法监听事件。
demo.on('事件名', function(data) {
// do something...
})
事件名 | 说明 |
---|---|
fileOpen | 文件打开成功或者失败时的事件回调 |
error | 错误发生时的事件回调,会返回错误码 |
fileStatus | 文件保存的事件回调,会返回状态 status 值:0表示文档无更新,1表示版本保存成功,2表示暂不支持保存空文件,3表示空间已满,4表示保存中请勿频繁操作,5表示保存失败,6表示文件更新保存中,触发场景:修改文档内容触发的保存,7表示文档内容修改保存成功 |