适用于Word的Office 2013 JavaScript API - 内容控制问题

时间:2013-04-15 15:29:56

标签: ms-word office-js word-addins word-2013 word-contentcontrol

是否可以将内容控件插入到Word文档中,然后获取内容控件的某种句柄或上下文,然后将HTML插入其中?

基本上,我尝试使用Office JavaScript API创建的方案是,根据用户的请求,插入富文本内容控件,然后使用HTML填充它。

我可以使用http://social.msdn.microsoft.com/Forums/en-US/appsforoffice/thread/8c4809c7-743c-4388-aef0-bc6a6855c882中建议的方法从JavaScript API插入内容控件。它需要一个oercml的强制类型。但是,我希望用ooxml填充的内容是基于HTML的。因此,当我尝试使用以下ooxml插入内容控件时:

...Boiler ooxml to create content control...

<w:r><w:t><h1>Test header</h1><h2>Test subheader</h2><p>Test paragraph text</p></w:t></w:r>

插入尝试失败。我假设那是因为你在使用oercml的coercionType将它插入文档时不能混合使用ooxml和html。

由于这种ooxml方法是您可以插入内容控件的唯一方法,因此如何使用HTML文本设置内容控件?我查看了http://msdn.microsoft.com/en-us/library/fp142295.aspx处的Document对象帮助内容,但我不确定如何仍然可以执行此操作,或者它是否可行。

由于

1 个答案:

答案 0 :(得分:1)

虽然我没有用JS试过 - 但它应该是可能的。

尝试添加altChunk元素,它可以包含其他打开的xml或html。我成功地使用了几次。

关于此问题的一些链接: http://blogs.msdn.com/b/brian_jones/archive/2008/12/08/the-easy-way-to-assemble-multiple-word-documents.aspx http://blogs.msdn.com/b/ericwhite/archive/2008/10/27/how-to-use-altchunk-for-document-assembly.aspx

但是,你应该尝试使用“strict”-xml - 否则可能无法实现上述目标。

我刚刚发现this example(它是德语,但也应该有英文版本)。其中使用的是coercionType:

    Office.context.document.setSelectedDataAsync(
      booksToRead,
      { coercionType: Office.CoercionType.Html },
      function (result) {
    // Access the results, if necessary.
    });

这也可以解决问题。