0

背景:

我正在使用 Javascript API for Office 在 MS Excel 中构建一个 Web 应用程序。我要添加到应用程序的一项功能是能够从应用程序编辑数据。setDataAsync该数据通过API 中的函数发送到 Excel 文档。它适用于纯文本。

我在电子邮件地址方面遇到了一个奇怪的问题。当我在单元格中手动输入电子邮件地址时,Excel 会自动将其格式化为mailto:超链接。当我使用 Javascript 设置数据时,这不会发生。我需要找到一种方法来强制 Excel 对其进行自动套用格式。

我的另一个想法是自己将数据预先格式化为链接,使用:

=HYPERLINK("mailto:person@website.com","person@website.com")

但是,当有人手动查看单元格时,他们会看到那个长公式,而不仅仅是地址。将它读回网络应用程序将是一场噩梦。

当前代码:

function writeData(bindingID,newData,row,col) {
    var newTable = new Office.TableData();
    newTable.rows = [[newData]];
    Office.select("bindings#"+bindingID).setDataAsync(newTable, {coercionType: "table", startRow: row, startColumn: col}, function (asyncResult) {
        if (asyncResult.status == "failed") {
            display('Error: ' + asyncResult.error.message);
        }
    });
}

问题:

是否可以使 Excel 自动格式化?

4

1 回答 1

0

答:做不到。

我也在MS论坛上问过这个问题,并得到了一个答案,我想在这里发布,以防其他人遇到同样的问题。

经过测试和研究,恐怕JavaScript for Office中没有提供检查后自动为单元格文本设置mailto链接的方法或属性。

使用 SetDataAsync 方法插入后,我们需要手动重新格式化单元格。

Luna Zhang - MSFT (来源)

于 2014-10-27T15:27:03.177 回答