跳到主要内容

Range

Range

范围对象

属性

isCollapsed

JSSDK: 1.8.4、zOffice V7.3 FP4 支持

是否是闭合范围,即没有选中内容,只有光标

语法

range.isCollapsed

range: 范围对象

返回值

boolean

示例

async function example() {
const range = await Application.ActiveDocument.getSelection();
const isCollapsed = range.isCollapsed;
}

Find

JSSDK: 1.3.3、zOffice V6.0 FP3 支持

返回一个只读Find对象,该对象包含查找操作所需的条件。

语法

range.Find

range: 范围对象

返回值

Find

示例

async function example() {
const selection = await Application.ActiveDocument.getSelection();
const Find = selection.Find;
}

Bookmarks

JSSDK: 1.4.1、zOffice V7.0 FP1 支持

返回一个书签集合,该集合表示文档、 区域或所选内容中的所有书签。 此为只读属性。

语法

Range.Bookmarks

Range: 范围对象

返回值

Word.Bookmarks

示例

// 获取第一个页眉区域的书签集合
async function example() {
const section = await Application.ActiveDocument.Sections.item(1);
const headers = section.Headers;
const header = await headers.item(Word.WdHeaderFooterIndex.wdHeaderFooterFirstPage);
const range = await header.range;
const bookmarks = range.Bookmarks;
}

// 获取第当前选区的书签集合
async function example() {
const range = await Application.ActiveDocument.getSelection();
const bookmarks = range.Bookmarks;
}

// 获取表格中的书签集合
async function example() {
const table = await Application.ActiveDocument.Tables.item(1);
const range = await table.range;
const bookmarks = range.Bookmarks;
}

PermMarks

JSSDK: 1.7.1、zOffice V7.2 FP1 支持

返回一个可编辑区域集合,该集合表示文档、 区域或所选内容中的所有可编辑区域。 此为只读属性。

语法

Range.PermMarks

Range: 范围对象

返回值

PermMarks

示例

// 获取第当前选区的可编辑区域集合
async function example() {
const range = await Application.ActiveDocument.getSelection();
const permMarks = range.PermMarks;
}

// 获取表格中的可编辑区域集合
async function example() {
const table = await Application.ActiveDocument.Tables.item(1);
const range = await table.range;
const permMarks = range.PermMarks;
}

Comments

JSSDK: 1.7.1、zOffice V7.2 FP1 支持

返回一个批注集合,该集合表示文档、 区域或所选内容中的所有批注。 此为只读属性。

语法

Range.Comments

Range: 范围对象

返回值

Comments

示例

// 获取当前选区的第一个批注
async function example() {
const range = await Application.ActiveDocument.getSelection();
const comments = range.Comments;
const comment = await comments.item(1);
}

Bold

JSSDK: 1.5.2、zOffice V7.0 FP2支持

返回或设置范围内的加粗格式。读/写boolean值 。

语法

Range.Bold

Range: 范围对象

返回值

Bold

示例

async function example() {
const bookmark = await Application.ActiveDocument.Bookmarks.item(1);
const range = await bookmark.range;
const isBold = await range.Bold;
console.log(isBold);
range.Bold = true;
}

Underline

JSSDK: 1.5.2、zOffice V7.0 FP2支持

返回或设置应用于范围内的下划线的类型。 读/写 WdUnderline 。

语法

Range.Underline

Range: 范围对象

返回值

Underline

示例

async function example() {
const bookmark = await Application.ActiveDocument.Bookmarks.item(1);
const range = await bookmark.range;
const underline = await range.Underline;
console.log(underline);
range.Underline = Word.WdUnderline.wdUnderlineSingle;
}

Italic

JSSDK: 1.5.2、zOffice V7.0 FP2支持

返回或设置范围内的倾斜格式。读/写boolean值 。

语法

Range.Italic

Range: 范围对象

返回值

Italic

示例

async function example() {
const bookmark = await Application.ActiveDocument.Bookmarks.item(1);
const range = await bookmark.range;
const isItalic = await range.Italic;
console.log(isItalic);
range.Italic = true;
}

Tables

JSSDK: 1.7.1、zOffice V7.2 FP1支持

返回一个table集合,该集合表示所选内容中的所有table。 此为只读属性。

Range.Tables

Range: 范围对象

返回值

Word.Tables

示例

//获取书签内的table
async function example() {
const bookmark = await Application.ActiveDocument.Bookmarks.item(1);
// 书签的range
const range = await bookmark.range;
// 指定书签内的table
const tables = range.Tables;
console.log(await tables.count);
}

方法

information

JSSDK: 1.9.5

返回指定范围的信息

语法

range.information(type)

range: 范围对象

返回值

Promise<any>

传入参数返回数据类型说明
Word.WdInformation.wdActiveEndPageNumberNumber返回包含指定的选定内容或范围,从文档的开头开始计数的页面数
Word.WdInformation.wdEndOfRangeRowNumberNumber返回表格行号,在该表格行中包含指定的所选内容或区域的结尾
Word.WdInformation.wdEndOfRangeColumnNumberNumber返回表格列号,在该表格列中包含指定的所选内容或区域的结尾

参数

属性数据类型必填说明
typeWord.WdInformation枚举值

示例

获取选区的末尾所在页面数

async function example() {
const range = await Application.Selection.range;
const pageNumber = await range.information(Word.WdInformation.wdActiveEndPageNumber);
console.log('pageNumber', pageNumber)
}

获取选区起始位置所在页面数

async function example(content) {
const range = await Application.Selection.range;
const newRange = range.buildRange(range.start, range.start);
const pageNumber = await range.information(Word.WdInformation.wdActiveEndPageNumber);
console.log('pageNumber', pageNumber)
}

获取书签末尾位置所在表格的行列号

async function example() {
const bookmark = await Application.ActiveDocument.Bookmarks.item(1);
const range = await bookmark.range;
const rowIndex = await range.information(Word.WdInformation.wdEndOfRangeRowNumber);
const colIndex = await range.information(Word.WdInformation.wdEndOfRangeColumnNumber);
console.log(rowIndex, colIndex);
}

appendText

JSSDK: 1.2.3、zOffice2022.3 FP3 支持

在指定范围后追加文字(目前仅支持Paragraph类型的range)

语法

range.appendText()

range: 范围对象

返回值

Promise<boolean>

参数

属性数据类型必填说明
contentstring追加的文本字符串

示例

async function example(content) {
const paragraph = await Application.ActiveDocument.Paragraphs.item(1);
const range = await paragraph.getRange(1, 5);
const success = await range.appendText(content);
}

clear

JSSDK: 1.2.3、zOffice2022.3 FP3 支持

清除指定范围文本内容(目前仅支持Paragraph类型的range)

语法

range.clear()

range: 范围对象

返回值

Promise<boolean>

示例

async function example() {
const paragraph = await Application.ActiveDocument.Paragraphs.item(1);
const range = await paragraph.getRange(1, 5);
const success = await range.clear();
}

compare

JSSDK: 1.2.1、zOffice2022.3 FP1 支持

返回两个 Range 之间的位置关系

语法

range.compare(_range)

range: 范围对象

参数

属性数据类型必填说明
_rangeWord.Range范围对象

返回值

Promise<Word.RangeRelation>

示例

async function example() {
const bookmark = await Application.ActiveDocument.Bookmarks.item(1);
const bRange = await bookmark.range;
const selection = await Application.ActiveDocument.getSelection();
const relation = await bRange.compare(selection);
}

getText

JSSDK: 1.2.3、zOffice2022.3 FP3 支持

获取指定范围文本内容(目前仅支持Paragraph类型的range)

语法

text.getText()

range: 范围对象

返回值

Promise<string>

示例

// 获取指定段落的部分文字内容
async function example1() {
const paragraph = await Application.ActiveDocument.Paragraphs.item(1);
const range = await paragraph.getRange(1, 5);
const text = await range.getText();
}

// 获取批注区域文字内容
async function example2() {
const comment = await Application.ActiveDocument.Comments.item(1);
const range = await comment.range;
const text = await range.getText();
}

// 获取当前选区文字内容
async function example3() {
const range = await Application.ActiveDocument.getSelection();
const text = await range.getText();
}

insertText

JSSDK: 1.2.3、zOffice2022.3 FP3 支持

在指定范围指定偏移位置插入文本(目前仅支持Paragraph类型的range)

语法

range.insertText(offset, content)

range: 范围对象

参数

属性数据类型必填说明
offsetnumber偏移量
contentstring插入的文本字符串

返回值

Promise<boolean>

示例

// 在段落内指定位置插入内容
async function example1() {
const paragraph = await Application.ActiveDocument.Paragraphs.item(1);
const range = await paragraph.getRange(1, 5);
const success = await range.insertText(0, "插入内容");
}

// 在批注区域开头插入内容
async function example2() {
const comment = await Application.ActiveDocument.Comments.item(1);
const range = await comment.range;
const success = await range.insertText(0, "插入内容");
}

// 在当前选区开头插入内容
async function example3() {
const range = await Application.ActiveDocument.getSelection();
const success = await range.insertText(0, "插入内容");
}

setText

JSSDK: 1.2.3、zOffice2022.3 FP3 支持

设定指定范围为指定文本(目前仅支持Paragraph类型的range)

语法

range.setText(content)

range: 范围对象

返回值

Promise<boolean>

参数

属性数据类型必填说明
contentstring指定文本

示例

// 设置段落部分区域文字内容
async function example1() {
const paragraph = await Application.ActiveDocument.Paragraphs.item(1);
const range = await paragraph.getRange(1, 5);
const success = await range.setText("替换内容");
}

// 设置批注区域文字内容
async function example2() {
const comment = await Application.ActiveDocument.Comments.item(1);
const range = await comment.range;
const text = await range.setText("替换内容");
}

// 设置当前选区文字内容
async function example3() {
const range = await Application.ActiveDocument.getSelection();
const text = await range.setText("替换内容");
}

getHtml

JSSDK: 1.7.2、zOffice V7.2 FP2支持

获取range的HtmlString

语法

range.getHtml()

返回值

htmlDom

示例

async function example() {
const bookmark1 = await app1.ActiveDocument.Bookmarks.item(1);
const range1 = await bookmark1.range;
const html = await range1.getHtml();
}

setHtml

JSSDK: 1.7.2、zOffice V7.2 FP2支持

传入htmlString,粘贴到指定的range位置

语法

range.setHtml(html)

返回值

Range:粘贴到的位置

示例

async function example() {
const bookmark1 = await app1.ActiveDocument.Bookmarks.item(1);
const range1 = await bookmark1.range;
const html = await range1.getHtml();

const bookmark2 = await app2.ActiveDocument.Bookmarks.item(1);
const range2 = await bookmark2.range;
await range2.setHtml(html);
}

scrollIntoView

JSSDK: 1.9.3、zOffice V8.0 FP3支持

视图滚动到该区域

语法

range.scrollIntoView()

返回值

Promise<boolean>

示例

// 视图滚动到目标表格位置
async function example() {
const table = await app1.ActiveDocument.Tables.item(1);
const range = await table.range;
const success = await range.scrollIntoView();
}

buildRange

JSSDK: 1.9.4

自定义构建range

语法

range.buildRange(star, end)

返回值

Promise<Range>

示例

// 构建两个段落的range
async function example() {
const paragraph1 = await Application.ActiveDocument.Paragraphs.item(1);
const range1 = await paragraph1.range


const paragraph2 = await Application.ActiveDocument.Paragraphs.item(3);
const range2 = await paragraph2.range

const range = await Application.Selection.range;
console.log(await range.getText())
}