【问题标题】:Wildcard search in Word OfficeJS for Office 2016 and WordOnline not workingWord Office JS for Office 2016 和 Word Online 中的通配符搜索不起作用
【发布时间】:2021-06-27 10:56:06
【问题描述】:

我正在尝试编写一个需要进行通配符搜索的 Word 插件。不幸的是,在context.document.body.search(SEARCHSTRING, {matchWildcards: true} 中使用{matchWildcards: true} 失败。

我正在使用 Word Online 和 Word 2016(16.0.4266.1001,32 位)。通配符搜索在两者中都失败。

我认为这应该可行:

如果文本 toon 在一个新的 docx 文档中,它应该被匹配:

click = async () = {
    return Word.run(async context => {
        searchResults = context.document.body.search('to*n', {matchWildcards: true})
        context.load(searchResults, 'text')
        await context.sync()
        console.log("len search results: " + searchResults.items.length);
        // should be > 0, but its not.
    }
}

这是 WordOnline 还是此版本的 Word 2016 的问题?是否需要以其他方式初始化 SearchOptions?

编辑:一些附加信息。

https://docs.microsoft.com/en-us/office/dev/add-ins/reference/requirement-sets/word-api-requirement-sets 说: “通过 MSI 安装的 Office 2016 的内部版本号为 16.0.4266.1001。此版本仅包含 WordApi 1.1 要求集。”

matchWildcards 被列为 WordApi 1.1 集的一部分 - https://docs.microsoft.com/en-us/javascript/api/word/word.searchoptions?view=office-js

所以看起来应该不是版本问题吧?

【问题讨论】:

  • 为了确保我理解,您是否发现代码确实适用于 Office 365 Word(非 MSI)?
  • Office 365(桌面)word下我恐怕无法测试。 MSI 和 Word Online 是我拥有的唯一版本。
  • 您的代码在 Word Online 中适用于我。也许问题在于您似乎混合了“回调”语法和“等待”语法。如果将 Word.run 前面的“return”替换为“await”会怎样?
  • 嗯。我也能够让它在 Word Online 中工作——在我的真实代码中一定有一些错字,我没有把它放在上面的例子中。相同的插件不适用于我拥有的 MSI Word。我想这一定是一些版本的东西,Officejs 不完全支持 MSI Word。该死。感谢您的帮助!
  • 我应该澄清一下,当我让你的代码工作时,它只是在我将 Word.run 前面的“return”替换为“await”之后。

标签: office-js


【解决方案1】:

该属性应设置为matchWildCards(大写WC,即使文档使用matchWildcards)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-13
    • 2020-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多