如何使用office-js以编程方式将超链接添加到工作表中的单元格?

时间:2016-06-30 14:40:49

标签: javascript office365 office-js excel-2016

我正在使用JavaScript API创建Excel加载项,以便在Excel 2016中构建加载项。

我遇到的问题不是将url / link放在单元格中 - 我宁愿让这个url可点击(因为你可能知道它从输入一个url进入一个单元格并点击)。

在VBA中,解决方案是这样的(例如):

With Worksheets(1)
    .Hyperlinks.Add .Range("E5"), "http://example.microsoft.com"
End With

不幸的是,我在JavaScript API中找不到超链接功能。 有什么想法吗?

非常感谢任何帮助和最好的问候 埃里克

2 个答案:

答案 0 :(得分:2)

Excel中有两种类型的超链接,一种是通过Hyperlinks.add在VBA中执行的,另一种是通过公式执行的。 Excel JavaScript对象模型很容易支持后者。

class Downloader {
  public function __construct($download_links_array,...) {
     $handle = new curl_multi_init();
     ...
  }
}

$downloader = new Downloader( array($download_links) );
$downloader->get_item(10); // Will this be too early to call?

~Michael Zlatkovsky,MSFT Office扩展团队开发人员

答案 1 :(得分:2)

截至目前,OfficeJS的测试版中提供了添加超链接。 您可以使用...

加载测试版
<script type="text/javascript" src="https://appsforoffice.microsoft.com/lib/beta/hosted/Office.js"></script>

...并使用

获取/设置超链接

在单元格A1中设置超链接:

Excel.run((context) => {
    const sheet = context.workbook.worksheets.getActiveWorksheet();
    const range = sheet.getRange('A1');
    range.hyperlink = {
        address: `mailto:test@example.com`,
        documentReference: null,
        screenTip: null,
        textToDisplay: 'Send me a Mail!',
    };
    return context.sync();
 })

从单元格A1获取超链接:

Excel.run((context) => {
    const sheet = context.workbook.worksheets.getActiveWorksheet();
    const range = sheet.getRange('A1').load('values, hyperlink');
    return context.sync().then(() => console.log(range.hyperlink));
})

API参考