抱歉 - Javascript 和 Office.js 的新手但是是时候将我的 .NET 格式功能区转换为跨平台了。有点学习曲线。
我使用我在插件教程中找到的这个功能来成功应用段落样式,但我已经尝试调整它(见下文)并且当我了解到完全关闭插件很重要时,退出它们单词并在测试更改之前返回并重新加载(非常乏味),它仍然适用于整个段落的字符样式。咕噜咕噜
function applyemphasisstyle() {
Word.run(function (context) {
var pars = context.document.getSelection().paragraphs;
pars.load();
return context.sync().then(function () {
for (var i = 0; i < pars.items.length; i++) {
pars.items[i].style = "Emphasis";
}
return context.sync();
})
}) //needed for Stack overflow
.catch(function (error) {
console.log("Error: " + error);
if (error instanceof OfficeExtension.Error) {
console.log("Debug info: " + JSON.stringify(error.debugInfo));
}
});
}
我试过改变:
var pars = context.document.getSelection().paragraphs;
到
var pars = context.document.getSelection().getTextRanges;
我试过只删除“.paragraphs”
我试过将“.paragraphs”更改为“.words”等
相同的结果 - 应用样式,但应用整个段落,而不是所选单词。
感谢您提供的任何帮助!
最佳答案
这段代码对我有用。由于您选择的是单个单词,因此无需循环,并且由于您是在写入样式属性而不是读取它,因此无需加载文本对象。
return Word.run(function(context) {
var selectedText = context.document.getSelection();
return context.sync()
.then(function () {
selectedText.style = "Emphasis";
})
});
我建议您使用 Script Lab用于计算脚本逻辑的工具。
关于javascript - Office.js 如何将字符样式应用于所选单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57369318/