主题
选区(Selection)
表示窗口或窗格中的当前选定内容。
选定内容表示文档中的选定(或突出显示)区域,或者代表插入点(如果未选择文档中的任何内容)。
每个文档窗格只能有一个 Selection
对象,并且在整个应用程序中只能有一个活动的 Selection
对象。
属性列表
属性 | 说明 |
---|---|
返回或设置一个 Font 对象,该对象代表指定对象的字符格式 | |
返回或设置一个 ParagraphFormat 对象,该对象代表指定选定内容中的段落设置。 | |
返回一个 Range 对象, 该对象代表指定对象中包含的文档部分 | |
返回一个 Tables 集合,该集合代表指定选定内容的所有表格 | |
返回一个 Rows 集合,该集合代表区域、选定内容或表格中的所有表格行。此为只读属性 | |
返回一个 Cells 集合,该集合代表选定内容中的表格单元格。此为只读属性 | |
返回一个 InlineShapes 集合,该集合代表选定内容中所有的 InlineShape 对象。此为只读属性 |
方法列表
方法 | 说明 |
---|---|
修改区域范围 | |
将指定的选定内容复制到剪贴板 | |
删除选区内容 | |
获取目标 gcp 在正文中的坐标,相对于正文容器,而不是窗口 | |
根据传入的 gcp 获取对应的相对位置(相对于 document.body),位置不在可视区时返回 -1 | |
表达式:文档类型应用对象。 | |
获取当前页 | |
选区后插入文本 | |
在选区后面插入分隔符 | |
用新段落替换指定的所选内容 | |
将选区范围向下移动 | |
将选区范围向左移动 | |
将选区范围向右移动 | |
将选区范围向上移动 | |
删除选区位置前的字符 |
Font
返回或设置一个 Font 对象,该对象代表指定对象的字符格式
语法
表达式.ActiveDocument.ActiveWindow.Selection.Font
表达式:文档类型应用对象
示例
js
//@file=base.docx
async function example() {
await instance.ready()
const app = instance.Application
// 选区对象
const selection = await app.ActiveDocument.ActiveWindow.Selection
// Font 对象
const font = await selection.Font
}
ParagraphFormat
返回或设置一个 ParagraphFormat 对象,该对象代表指定选定内容中的段落设置。
语法
表达式.ActiveDocument.ActiveWindow.Selection.ParagraphFormat
表达式:文档类型应用对象
示例
js
//@file=base.docx
async function example() {
await instance.ready()
const app = instance.Application
// 选区对象
const selection = await app.ActiveDocument.ActiveWindow.Selection
// ParagraphFormat 对象
const paragraphFormat = await selection.ParagraphFormat
}
Range
返回一个 Range 对象, 该对象代表指定对象中包含的文档部分
语法
表达式.ActiveDocument.ActiveWindow.Selection.Range
表达式:文档类型应用对象
示例
js
//@file=base.docx
async function example() {
await instance.ready()
const app = instance.Application
// 选区对象
const selection = await app.ActiveDocument.ActiveWindow.Selection
// Range 对象
const range = await selection.Range
}
Tables
返回一个 Tables 集合,该集合代表指定选定内容的所有表格
语法
表达式.ActiveDocument.ActiveWindow.Selection.Tables
表达式:文档类型应用对象
示例
js
//@file=base.docx
async function example() {
await instance.ready()
const app = instance.Application
// 选区对象
const selection = await app.ActiveDocument.ActiveWindow.Selection
// Tables 对象
const font = await selection.Tables
}
Rows
返回一个 Rows 集合,该集合代表区域、选定内容或表格中的所有表格行。此为只读属性
语法
表达式.ActiveDocument.ActiveWindow.Selection.Rows
表达式:文档类型应用对象
示例
js
//@file=base.docx
async function example() {
await instance.ready()
const app = instance.Application
// 选区对象
const selection = await app.ActiveDocument.ActiveWindow.Selection
// Rows 对象
const font = await selection.Rows
}
Cells
返回一个 Cells 集合,该集合代表选定内容中的表格单元格。此为只读属性
语法
表达式.ActiveDocument.ActiveWindow.Selection.Cells
表达式:文档类型应用对象
示例
js
//@file=base.docx
async function example() {
await instance.ready()
const app = instance.Application
// 选区对象
const selection = await app.ActiveDocument.ActiveWindow.Selection
// Cells 对象
const cells = await selection.Cells
}
InlineShapes
返回一个 InlineShapes 集合,该集合代表选定内容中所有的 InlineShape 对象。此为只读属性
语法
表达式.ActiveDocument.ActiveWindow.Selection.InlineShapes
表达式:文档类型应用对象
示例
js
//@file=base.docx
async function example() {
await instance.ready()
const app = instance.Application
// 选区对象
const selection = await app.ActiveDocument.ActiveWindow.Selection
// InlineShapes 对象
const font = await selection.InlineShapes
}
SetRange()
修改区域范围
语法
表达式.ActiveDocument.Range(Start, End).SetRange({ Start, End })
或者表达式.ActiveDocument.Tables.Item(Index).Rows.Item(Index).Cells.Item(Index).Range.SetRange({ Start, End })
表达式:文档类型应用对象
参数
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
Start | number | 是 | 区域开始位置 | |
End | number | 是 | 区域结束位置 |
示例 1
js
//@file=base.docx
async function example() {
await instance.ready()
const app = instance.Application
// 获取选中区域
const range = await app.ActiveDocument.Range(0, 10)
// 设置区域范围
await range.SetRange(10, 20)
}
示例 2
js
//@file=base.docx
async function example() {
await instance.ready()
const app = instance.Application
// 获取第 1 个表格
const tableOne = await app.ActiveDocument.Tables.Item(1)
// 获取表格第 1 行的第 1 个单元格
const cellOne = await tableOne.Rows.Item(1).Cells.Item(1)
// 获取该单元格的区域对象
const range = await cellOne.Range
// 单元格字体属性
const font = await range.Font
// 修改区域范围
const newRange = await range.SetRange({
Start: 1,
End: 10
})
const newText = await newRange.Text // 获取新区域文本
console.log(newText)
}
Copy()
将指定的选定内容复制到剪贴板
语法
表达式.ActiveDocument.ActiveWindow.Selection.Copy()
表达式:文档类型应用对象
示例
js
//@file=base.docx
async function example() {
await instance.ready()
const app = instance.Application
// 选中前 10 文字
await app.ActiveDocument.Range.SetRange(1, 10)
// 将指定的选定内容复制到剪贴板
await app.ActiveDocument.ActiveWindow.Selection.Copy()
// 内容已复制到剪切板,通过 Ctrl + V 可以粘贴
}
Delete()
删除选区内容
语法
表达式.ActiveDocument.ActiveWindow.Selection.Delete(WdUnits)
表达式:文档类型应用对象
参数
WdUnits
是枚举,具体可看: Enum.WdUnits
示例
js
//@file=base.docx
async function example() {
await instance.ready()
const app = instance.Application
// 删除选区内容
await app.ActiveDocument.ActiveWindow.Selection.Delete(1)
}
GetPosByGcp()
获取目标 gcp 在正文中的坐标,相对于正文容器,而不是窗口
GCP:global character position
语法
表达式.ActiveDocument.ActiveWindow.Selection.GetPosByGcp({ Pos })
表达式:文档类型应用对象
参数
属性 | 数据类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
Gcp | Number | 否 | 正文的位置 |
返回值
返回对应的 (x, y)
表示对应的坐标信息
属性 | 数据类型 | 说明 |
---|---|---|
X | Number | x 轴 |
Y | Number | y 轴 |
示例
js
//@file=base.docx
async function example() {
await instance.ready()
const app = instance.Application
// 返回正文的位置
const pos = await app.ActiveDocument.ActiveWindow.Selection.GetPosByGcp(1)
console.log(pos)
}
GetRelativePosByGcp()
根据传入的 gcp 获取对应的相对位置(相对于 document.body),位置不在可视区时返回 -1
GCP:global character position
语法
表达式.ActiveDocument.ActiveWindow.Selection.GetRelativePosByGcp({ Gcp })
表达式:文档类型应用对象
参数
属性 | 数据类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
Gcp | Number | 否 | 根据传入的 gcp 获取对应的相对位置(相对于 document.body),位置不在可视区时返回 -1 |
返回值
返回对应的 (x, y)
表示对应的坐标信息
示例
js
//@file=base.docx
async function example() {
await instance.ready()
const app = instance.Application
// 根据传入的 gcp 获取对应的相对位置(相对于document.body),位置不在可视区时返回 -1
await app.ActiveDocument.ActiveWindow.Selection.GetRelativePosByGcp(1)
}
GoTo()
GoTo() 方法可以协助我们跳转到页面的指定位置,例如指定页面或者指定的书签。
由于文字文档是流式排版,大文档时,跳转时间会比较长,建议加一个中间
loading
过渡效果。
语法
表达式.ActiveDocument.ActiveWindow.Selection.GoTo(What, Which, Count, Name)
表达式:文档类型应用对象。
参数
属性 | 数据类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
What | Number | 可选 | 指定区域或选定内容要移动到的项的类别。可以是 WdGoToItem 常量之一。指定为 WdGoToItem.wdGoToBookmark ,表明需要跳转的类型是书签;指定为 WdGoToItem.wdGoToPage ,表明需要跳转的类型是页面 | |
Which | Number | 可选 | 指定区域或选定内容要移动到的项。可以是 WdGoToDirection 常量之一。指定为 WdGoToDirection.wdGoToAbsolute ,表明是绝对定位 | |
Count | Number | 可选 | 在文档中的项的数目。默认值为 1。仅正值有效。 | |
Name | String | 可选 | 如果那些参数是 wdGoToBookmark,则此参数指定一个名称。 |
返回值
返回到跳转后的页面。
示例 1
跳转到指定的页面
js
//@file=base.docx
// 跳转到指定页
async function example() {
await instance.ready()
const app = instance.Application
const page = await app.ActiveDocument.ActiveWindow.Selection.GoTo(
app.Enum.WdGoToItem.wdGoToPage,
app.Enum.WdGoToDirection.wdGoToAbsolute,
3
)
}
示例 2
跳转到指定的书签
js
//@file=base.docx
// 获取所有书签
async function example() {
await instance.ready()
const app = instance.Application
// 添加书签
await app.ActiveDocument.Bookmarks.Add({
Name: 'WebOffice',
Range: {
Start: 1,
End: 10
}
})
// 跳转到指定的书签
await app.ActiveDocument.ActiveWindow.Selection.GoTo(
app.Enum.WdGoToItem.wdGoToBookmark, // 类型:Bookmark
app.Enum.WdGoToDirection.wdGoToAbsolute, // 定位
undefined, // 数量
'WebOffice' // 书签名
)
// 或者
await app.ActiveDocument.ActiveWindow.Selection.GoTo({
What: app.Enum.WdGoToItem.wdGoToBookmark,
Which: app.Enum.WdGoToDirection.wdGoToAbsolute,
Name: 'WebOffice' // 书签名
})
}
Information()
获取当前页
由于文字文档是流式排版,没办法一开始就确定最终页数,只有浏览到最底部才知道总页数。
语法
表达式.ActiveDocument.ActiveWindow.Selection.Information(WdInformation)
表达式:文档类型应用对象
参数
属性 | 数据类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
WdInformation | Enum | 是 | 指定返回的涉及指定所选内容或区域的信息的类型。为 3 (WdInformation.wdActiveEndPageNumber)表示页码,在该页中包含指定的所选内容或区域的活动结尾。从文档开头计数。忽略任何对页码的手动调整 |
返回值
返回 Number 代表当前页页码
示例
js
//@file=base.docx
async function example() {
await instance.ready()
const app = instance.Application
// 获取当前页数
const currentPage =
await app.ActiveDocument.ActiveWindow.Selection.Information(
app.Enum.WdInformation.wdActiveEndPageNumber
)
console.log(currentPage)
}
InsertAfter()
选区后插入文本
语法
表达式.ActiveDocument.ActiveWindow.Selection.InsertAfter(Text)
表达式:文档类型应用对象
参数
属性 | 数据类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
Text | String | 是 | 需要插入的文本 |
示例
js
//@file=base.docx
async function example() {
await instance.ready()
const app = instance.Application
// 选区后插入文本
await app.ActiveDocument.ActiveWindow.Selection.InsertAfter('Text')
}
InsertBreak()
在选区后面插入分隔符
语法
表达式.ActiveDocument.ActiveWindow.Selection.InsertBreak({ Type })
表达式:文档类型应用对象
参数
属性 | 数据类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
Type | Enum | Enum.WdBreakType.wdPageBreak | 否 | 要插入的分页符的类型。默认值是 wdPageBreak,详细可参考 Enum.WdBreakType |
示例
js
//@file=base.docx
async function example() {
await instance.ready()
const app = instance.Application
// 在选区位置插入分页符(由于是默认值,所以可以不传)
await app.ActiveDocument.ActiveWindow.Selection.InsertBreak()
}
InsertParagraph()
用新段落替换指定的所选内容
语法
表达式.ActiveDocument.ActiveWindow.Selection.InsertParagraph()
表达式:文档类型应用对象
示例
js
//@file=base.docx
async function example() {
await instance.ready()
const app = instance.Application
// 用新段落替换指定的所选内容
await app.ActiveDocument.ActiveWindow.Selection.InsertParagraph()
}
MoveDown()
将选区范围向下移动
语法
表达式.ActiveDocument.ActiveWindow.Selection.MoveDown()
表达式:文档类型应用对象
示例
js
//@file=base.docx
async function example() {
await instance.ready()
const app = instance.Application
// 将光标向下移动
await app.ActiveDocument.ActiveWindow.Selection.MoveDown()
}
MoveLeft()
将选区范围向左移动
语法
表达式.ActiveDocument.ActiveWindow.Selection.MoveLeft()
表达式:文档类型应用对象
示例
js
//@file=base.docx
async function example() {
await instance.ready()
const app = instance.Application
// 将光标向左移动
await app.ActiveDocument.ActiveWindow.Selection.MoveLeft()
}
MoveRight()
将选区范围向右移动
语法
表达式.ActiveDocument.ActiveWindow.Selection.MoveRight()
表达式:文档类型应用对象
示例
js
//@file=base.docx
async function example() {
await instance.ready()
const app = instance.Application
// 将光标向右移动
await app.ActiveDocument.ActiveWindow.Selection.MoveRight()
}
MoveUp()
将选区范围向上移动
语法
表达式.ActiveDocument.ActiveWindow.Selection.MoveUp()
表达式:文档类型应用对象
示例
js
//@file=base.docx
async function example() {
await instance.ready()
const app = instance.Application
// 将光标向上移动
await app.ActiveDocument.ActiveWindow.Selection.MoveUp()
}
TypeBackspace()
删除选区位置前的字符
语法
表达式.ActiveDocument.ActiveWindow.Selection.TypeBackspace()
表达式:文档类型应用对象
示例
js
//@file=base.docx
async function example() {
await instance.ready()
const app = instance.Application
// 光标向下移动
await app.ActiveDocument.ActiveWindow.Selection.MoveDown()
// 删除光标前的字符
await app.ActiveDocument.ActiveWindow.Selection.TypeBackspace()
}