【问题标题】:Office task pane app: how to do search and replace in a Word document?Office 任务窗格应用程序:如何在 Word 文档中进行搜索和替换?
【发布时间】:2015-04-29 16:15:41
【问题描述】:

我们正在开发一个 Office 任务窗格应用程序,用于搜索特定文本并将其替换为值。

例如,我们有一个word文档:

Total invoice of this year <<thisYear>> is <<totalInvoice>>

在任务窗格应用程序中,当用户单击按钮时,应用程序应搜索 > 周围的文本,并将其替换为来自互联网数据的真实值。结果应如下所示:

Total invoice of this year 2015 is $2,000,078.34

我是 Office 任务窗格应用程序的新手,我应该怎么做?

============== 更新=================

除了从 MS 运行演示之外,我什么也没做。该演示展示了如何从 word 文档中获取选定的文本。很容易理解。

function getDataFromSelection() {
    Office.context.document.getSelectedDataAsync(Office.CoercionType.Text,
        function (result) {
            if (result.status === Office.AsyncResultStatus.Succeeded) {
                app.showNotification('The selected text is:', '"' + result.value + '"');
            } else {
                app.showNotification('Error:', result.error.message);
            }
        }
    );
}

但是,我没有找到任何 FindReplace API,但是:

Document API
    Document object
        bindings property
        customXmlParts property
        mode property
        settings property
        url property
        addHandlerAsync method
        getActiveViewAsync method
        getFileAsync method
        getFilePropertiesAsync method
        getSelectedDataAsync method
        goToByIdAsync method
        removeHandlerAsync method
        setSelectedDataAsync method
        ActiveViewChanged event
        SelectionChanged event

【问题讨论】:

  • 请告诉我们你做了什么?
  • 我更新了问题,@DhruvJoshi,请看一下。
  • 查看业务问题陈述,我相信您不需要为此使用应用程序,因为 Word 文档中的邮件合并完全可以满足您的需求。

标签: office365


【解决方案1】:

根据MS documentation,您可以进行以下操作

适用于:内容和任务窗格应用类型

为了与 Excel、PowerPoint 和 Word 中的文档数据进行交互,API 提供了 Document 对象。您可以使用 Document 对象成员通过以下方式访问数据:

  1. 以文本形式读取和写入活动选择,连续 单元格(矩阵)或表格。
  2. 表格数据(矩阵或表格)。
  3. 绑定(使用绑定对象的“添加”方法创建)。
  4. 自定义 XML 部分(仅适用于 Word)。
  5. 设置或应用状态在文档中保留每个应用。

下面还有一点

Document对象支持四种方式供开发者访问 文件内容:

  1. 基于选择的访问
  2. 基于绑定的访问
  3. 基于自定义 XML 部件的访问(仅限 Word)
  4. 整个基于文档的访问(仅限 PowerPoint 和 Word)

yet another documentation 中,MS 解释说选择是应用程序工作流程的关键部分。

我相信你唯一的路线是:

  1. 要求用户选择整个文档,然后单击按钮运行替换代码,可能使用setSelectedDataAsync 方法。
  2. 使用Document.getFileAsync方法获取完整的文档并替换代码中的>,然后创建一个新文档。查看示例以获取完整内容here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多