Javascript 使用Office应用程序更改word文档样式

Javascript 使用Office应用程序更改word文档样式,javascript,office365-apps,apps-for-office,Javascript,Office365 Apps,Apps For Office,我正在尝试使用Office js API为Word Office创建一个应用程序 我已经找到了如何在word文档中获取和设置内容,但我很难找到如何更改样式(标题等)之类的内容 在开始讨论如何做之前,它可能吗?对您的问题的答案是肯定的,现在,api这个词有点新,缺少了一些可以让开发人员的生活更轻松的功能。首先,word api不支持标题,解决方法是创建内容控件并将其用作标题。我目前正在我使用的word应用程序中使用此解决方案 现在对于样式,样式的使用非常棒。如果用户的pc上当前安装了这些样式,您可

我正在尝试使用Office js API为Word Office创建一个应用程序

我已经找到了如何在word文档中获取和设置内容,但我很难找到如何更改样式(标题等)之类的内容


在开始讨论如何做之前,它可能吗?

对您的问题的答案是肯定的,现在,api这个词有点新,缺少了一些可以让开发人员的生活更轻松的功能。首先,word api不支持标题,解决方法是创建内容控件并将其用作标题。我目前正在我使用的word应用程序中使用此解决方案

现在对于样式,样式的使用非常棒。如果用户的pc上当前安装了这些样式,您可以轻松引用这些样式。然而,作为一名开发人员,你可能已经发现生活并不容易。所以我也在这个问题上运行了int,首先插入我想要的内容,然后创建一个段落集合作为代理对象。然后我加载这两个对象并同步。在我遍历段落集合并添加自定义样式之后,这是我创建的预设对象。下面的函数将向您展示我试图解释的内容。我希望这有帮助

    function InsertHtml(content, styleSelection) {

    Word.run(function (context) {

        var range = context.document.body.insertHtml(content, "end");
        var paragraphs = context.document.body.paragraphs;

        return context.sync().then(function () {

            var index = $.map(headerStyles, function (obj, index) {
                if (obj.name == styleSelection) {
                    return index;
                }
            })
            for (var x = 0; x < paragraphs.items.length; x++) {

                var paragraph = paragraphs.items[x];
                paragraph.font.name = headerStyles[index].fontName;
                paragraph.font.color = headerStyles[index].color;
                paragraph.font.size = headerStyles[index].size;
                paragraph.leftIndent = headerStyles[index].indent;
                //paragraph.lineSpacing = headerStyles[index].lineSpacing;
                //paragraph.alignment = headerStyles[index].alignment;                          
            }



            return context.sync();
        });
    })
    .catch(feedBackMessage);
};
函数插入TML(内容、样式选择){
运行(函数(上下文){
var range=context.document.body.insertHtml(content,“end”);
var段落=context.document.body.段落;
返回context.sync().then(函数(){
var index=$.map(headerStyles,function(obj,index){
if(obj.name==样式选择){
收益指数;
}
})
对于(var x=0;x
使用setSelectedDataAsync API,您应该能够将支持样式的HTML或Office Open XML传递给它,所以我在这里感到困惑。你到底想做什么,而你提到的两个API做不到?当我写这个问题时,我想要的是一个API使用Word预定义样式,并像普通用户一样在所选文本上使用它们。无论如何,我最终插入了ooxml并完成了工作。非常感谢。嗨。关于你的回答,我有一个问题。自定义样式是您创建的预设对象。你能详细说明一下吗。我想使用我的word javascript加载项向文档添加自定义样式。我不知道如何进行。如果你能再多解释一点,那会很有帮助的。嘿,穆罕默德,你的电脑上有定制的款式吗?这个例子是当我使用HTML时,通过一个可以引用的css类来改变样式。一个好的开始是在你的PC上本地创建你的样式,用这些样式写一段或几个句子,然后继续使用JavaScript函数以HTML的形式阅读。一旦将文本加载为HTML,您就可以看到创建的输出以及css类如何容纳样式。然后可以模拟此行为来添加自定义样式。