ms-word - 如何在开发 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}。所以我想将粗体样式应用于定位范围。
解决方案
刚刚找到了办法。关键是将一个空分隔符传递给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()
}
推荐阅读
- excel - 基于日期停止另一个 VBA 的 VBA 代码
- c# - 在 C# 它的 Object 或 Dynamic 中表示任何 TypeScript 对象的最佳方式是什么
- html - 溢出时弹出:隐藏容器
- javascript - webpack dev 与 parse-asn1 中的 require(asn1.js) 构建命名冲突 .. 如果我将 import 更改为 require(../asn1.js)
- docker - 试图了解使用 docker(Scheduler, Queue, Workers) VS Docker(Airflow) 之间的区别
- arrays - 使用 size_t 运算符的数组的增量值
- java - “java.io.IOException:连接超时”VS HttpTimeoutException 在 java 11 HTTP 客户端
- python - numpy @njit 无法确定 Numba 类型
- javascript - SyntaxError: (node:3680) ExperimentalWarning: ESM 模块加载器是实验性的
- ios - 在 DateFormatter (Swift) 中计算值