ms-word - 如何使用 JS API 在 MS Office Word 插件中以编程方式获取 Word 文档中的文本范围
问题描述
我需要以编程方式(通过 MS Office 插件)获取 word 文档中文本的数值范围(例如:startpoint-30、endpoint-35),但我无法通过 JS 找到如何做到这一点。这是一个例子:
你好,我的朋友皮特,我昨天和你的朋友罗伯特谈过了,他谈到了他的朋友安。
所以,我需要获取我想要的任何单词的范围,并为未来的发展创建单词范围的数组。例如,如果我们谈论单词“Pete”,它的范围应该是(16,20),如果文本的开头是 0。当我在互联网上研究这个时,我发现了一些似乎不可能的信息与JS API有关。
但我在 .NET 文档中发现了这样的功能。这是链接 https://docs.microsoft.com/en-us/visualstudio/vsto/how-to-programmatically-define-and-select-ranges-in-documents?view=vs-2019
所以最后一个问题。是否有可能(如果是,它是否非常复杂,我该如何实现)使用 JS API 来完成我上面描述的功能,或者我应该切换到 .NET 不要浪费我的时间。
解决方案
我假设您的意思是从字面上获取范围的数字范围,而不是您想要使用已经必须获得范围的数字范围。因此,如果我了解您想要做什么,那么我建议您尝试以下操作:
以 Range 对象的形式获取对整个文本的引用。然后使用Range.split方法获取“Pete”之前的范围。返回的集合的第一个成员的文本是“你好,我的朋友”。ranges
该字符串的长度是您的起点。您的终点是起点和“Pete”长度之和。
var target = "Pete";
var ranges = myRange.split([target], true, true, false);
var precedingRange = ranges.getFirst();
var startPoint = precedingRange.text.length;
var endPoint = starPoint + target.length;
推荐阅读
- python-3.x - 按大小将大文件拆分为较小的块
- facebook-graph-api - 如何编写 Kafka 连接器以与 Facebook API 集成?
- javascript - cmd.exe 和 start.batch 的问题
- laravel - 显示从 guzzle 请求中获取的 BLOB 文件(图像)
- gradle - TestFX Spock Gradle 项目 Openjdk 11 - 零测试结果
- java - 并行自动化测试和线程安全变量
- c++ - HttpQueryInfo 获取文件大小
- bash - 有没有办法创建一个打印出特定段落的bash脚本,即在空行之间打印一个特定的文本块?
- python - 无法导入 numpy
- powershell - 为什么 Invoke-Webrequest 正确返回外来字符而 cURL 没有?