【问题标题】:How to programatically add a hyperlink to a cell in a worksheet using office-js?如何使用 office-js 以编程方式将超链接添加到工作表中的单元格?
【发布时间】:2016-11-02 17:52:50
【问题描述】:

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

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

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

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

很遗憾,我在 JavaScript API 中找不到超链接函数。 有什么想法吗?

非常感谢您的帮助和问候 埃里克

【问题讨论】:

    标签: javascript office365 office-js excel-2016


    【解决方案1】:

    截至目前,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 参考

    【讨论】:

      【解决方案2】:

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

      Excel.run(function (ctx) {
          var firstCellInSelection = ctx.workbook.getSelectedRange().getCell(0, 0);
          firstCellInSelection.formulas = [['=HYPERLINK("http://www.bing.com")']];
          return ctx.sync();
      }).catch(function (error) {
          console.log(error);
      });
      

      ~ Michael Zlatkovsky,微软办公室扩展团队开发人员

      【讨论】:

      • 你成就了我的一天,迈克尔!有时,简单的解决方案是最简单的...... ;)
      • 我们可以在 Word 端添加超链接吗?
      • 不确定后者。我建议您专门针对 Word 发布一个单独的问题。
      • 嘿@MichaelZlatkovsky-Microsoft,如果我们不想使用超链接公式,而是想复制 Excel 的“插入 -> 链接”功能怎么办?我可以使用 .values 将超链接粘贴为原始文本,但如何将其格式化为超链接?
      • 抱歉耽搁了,现在才看到。目前,很遗憾,不使用公式就无法添加超链接,但该功能 预计将在 ExcelApi 1.7 版本中推出。请参阅开放规范:github.com/OfficeDev/office-js-docs/tree/ExcelJs_OpenSpec
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-19
      • 2011-12-21
      • 2016-04-20
      • 2022-01-04
      • 2013-09-27
      • 2015-04-27
      • 1970-01-01
      相关资源
      最近更新 更多