首页 > 解决方案 > 如何在开发 MS Word 插件时使用 Office.js 从开始和结束索引获取范围

问题描述

我想从父段落中按字符索引获取子范围。这样做的建议方法是什么?我发现缩小范围的唯一方法是“Paragraph.search()”

参考:Word.Range:https ://docs.microsoft.com/en-us/javascript/api/word/word.range?view= office-js Word.Paragraph:https ://docs.microsoft.com/en -us/javascript/api/word/word.paragraph?view=office-js

我的用例:

我正在为 MS Word 编写 markdown 插件,并且正在尝试解析以下段落。

A **bold** word

markdown 解析器的输出是 {style:"strong",start:2,end:9}。所以我想将粗体样式应用于定位范围。

标签: ms-wordoffice-jsword-addins

解决方案


刚刚找到了办法。关键是将一个空分隔符传递给Paragraph.getTextRanges([""]) 我不确定性能会有多糟糕。

const makeBold = async (paragraph:Word.Paragraph,start:number,end:number) => {
  const charRanges = paragraph.getTextRanges([""])
  charRanges.load()
  await charRanges.context.sync()
  const targetRange = charRanges.items[start].expandTo(charRanges.items[end])
  targetRange.load()
  await targetRange.context.sync()
  targetRange.font.bold = true
  await targetRange.context.sync()
}

推荐阅读