从 Javascript 插件控制 Word 文档中的选择范围
Posted
技术标签:
【中文标题】从 Javascript 插件控制 Word 文档中的选择范围【英文标题】:Control the selection range in Word document from Javascript Add-in 【发布时间】:2018-01-18 06:33:26 【问题描述】:给定 Word 文档正文文本中的某个范围,我想将当前选择设置为该范围并替换其中的文本。
有谁知道如何使用 javascript API 从加载项控制 Word 文档中的当前选择?我似乎在文档中找不到任何内容:
https://dev.office.com/reference/add-ins/word/word-add-ins-reference-overview
我知道我可以使用context.document.getSelection()
获取文档中的当前选择,但是如何获取文档中的任何选择或指定选择了文档的哪个部分?如何以编程方式控制文档中选择的内容?
【问题讨论】:
【参考方案1】:获取用户选择的选定范围:
// Run a batch operation against the Word object model.
Word.run(function (context)
var range = context.document.getSelection(); // Create a range proxy object for the current selection.
context.load(range);
// Synchronize the document state by executing the queued commands,and return a promise to indicate task completion.
return context.sync().then(function ()
if (range.isEmpty) //Check if the selection is empty
return;
var html = range.getHtml();
return context.sync().then(function ()
var htmlVal = html.value; //Get the selected text in HTML
);
);
);
在选定范围内设置用户:
// Run a batch operation against the Word object model.
Word.run(function (context)
var range = context.document.getSelection();// Create a range proxy object for the current selection.
range.clear();
range.delete();
// Synchronize the document state by executing the queued commands, and return a promise to indicate task completion.
return context.sync().then(function ()
range.styleBuiltIn = "Normal";
range.insertText("your text"); // Queue a command to insert the encrypted text instead the current text
);
)
因此,如果您以某种方式已经有了“范围”,则无需获取它。
** 如果您不想进行用户选择并且只想更改文档的某些部分,您可以使用段落选择来实现它,您可以在此处找到有关段落对象的更多信息以及您可以用它做什么: https://dev.office.com/reference/add-ins/word/paragraph
祝你好运
【讨论】:
感谢@OriEng。这不是我想要的,对不起。我会尽力澄清我的问题。我知道我可以在文档中获取当前选择,但是如何获取文档中的任何选择?类似于new Word.Range(start, end)
,其中start
和end
是文档文本中的任何索引。
@CraigSketchley 你所说的“任意选择”是什么意思?对不起,我还是不明白你的问题
不用担心@OriEng。对不起,我没有更清楚。简单地说,我想以编程方式控制选择。据我了解,我只能访问用户选择的内容,但我的加载项如何选择文档的任何部分?
@CraigSketchley 我认为您的选项可能是段落选择,然后替换此段落:dev.office.com/reference/add-ins/word/paragraph 另一个选项只是全选,我在 API 上找不到另一种选择选择
@CraigSketchley 很高兴为您提供帮助,希望您成功解决您的问题。我更新了我的答案,告诉我是否要添加其他必要的内容。以上是关于从 Javascript 插件控制 Word 文档中的选择范围的主要内容,如果未能解决你的问题,请参考以下文章