将样式应用于段落删除同一段落中的其他样式

时间:2017-04-25 18:03:18

标签: office-js

我正在使用Office.js API为Word开发新的插件。

默认情况下,当我使用Word中的默认用户界面应用“普通”样式时,它会保留段落中的所有其他格式样式(粗体,斜体,字符样式......),并且正如预期的那样,它仅将段落样式更改为“正常” “

我试图模仿将“正常”样式应用到段落的功能 编程。

我有这段代码:

function applyStyleParagraph(styleName) {
    Word.run(function(context) {
        var pars = context.document.getSelection().paragraphs;
        context.load(pars, 'style');
        return context.sync().then(function () {
            for (var i = 0; i < pars.items.length; i++) {
                pars.items[i].style = styleName;
            }
            return context.sync().then(function () {
                console.log('Style: ' + styleName + ' / Style paragraph created');
            });
        })
    }).catch(function(error) {
        console.log(error);
        if (error instanceof OfficeExtension.Error) {
            console.log('Style: ' + styleName  + 
                    ' / Debug info: ' + JSON.stringify(error.debugInfo));
        }
    });
}

结果是删除了所有其他格式样式(粗体,斜体,打击,字符样式)。

¿如何保留所有其他格式样式?

此问题影响Word在线Word 2016。

1 个答案:

答案 0 :(得分:0)

您可能会知道Word的正常行为是发生了什么-您将段落样式应用于段落,它将删除(我们称之为“所有手动格式”)格式化-通过字体按钮等应用的格式主页标签,例如粗体,斜体,更改颜色,字体名称+大小等

Rick Kirkham建议您创建并应用字符样式(对于字符而不是段落)时,他赚了很多钱-即内置字体的粗体为Strong,斜体为Emphasis,我创建了自定义字符强调品牌色彩文字的样式。

我找到了这篇文章,是因为我是一位VB / VBA开发人员,试图将我的宏转换为Office.js并努力了解如何将字符样式应用于选定的字符集-我似乎只能将段落样式-我的代码将忽略所选单词。 rr如果找不到答案,会将其作为一个单独的问题发布。