适用于Office的Javascript API:如何手动触发MS Office的自动套用格式功能?

时间:2014-10-17 12:57:34

标签: javascript ms-office excel-2013 javascript-api-for-office

背景:

我正在使用Javascript API for Office在MS Excel中构建一个Web应用程序。我正在添加到应用程序的一项功能是能够从应用程序编辑数据。该数据通过API中的setDataAsync函数发送到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成为autoformat?

1 个答案:

答案 0 :(得分:0)

答案:无法完成。

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

  

经过测试和研究,我担心没有方法或   用于Office的JavaScript中的属性,用于自动设置mailto   检查后单元格文本的链接。

     

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

Luna Zhang - MSFT (Source)