如何使用Google Apps脚本向电子表格单元格添加链接

时间:2016-05-27 14:25:05

标签: google-apps-script google-sheets

可以通过用户界面向Google电子表格中的单元格添加“链接”。我想使用Google Apps脚本执行相同的操作。我期待在Range类上有一个方法,但是看不到它。有谁知道怎么做?

3 个答案:

答案 0 :(得分:5)

RANGE.setFormula加上HYPERLINK Formula可以为您提供所需内容。

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

var cell = sheet.getRange("B5");
cell.setFormula('=HYPERLINK("http://www.google.com/","Google")');

答案 1 :(得分:4)

从2020年6月开始,可以选择设置RTF链接URL。现在,您可以执行以下操作:

const sheet = SpreadsheetApp.getActiveSheet();
const rangeToBeLinked = sheet.getRange('A2');
const rangeToAddLink = sheet.getRange('D32')
const richText = SpreadsheetApp.newRichTextValue()
    .setText('Click to go to ' + rangeToBeLinked.getA1Notation())
    .setLinkUrl('#gid=' + sheet.getSheetId() + '&range=' + 'A' + rangeToBeLinked.getRow())
    .build();
rangeTwo.setRichTextValue(richText );

答案 2 :(得分:2)

我今天遇到了这个问题。这是我的解决方案。这是ES6,因此您需要运行新的V8 Engine for Apps脚本。 此功能专门用于选定范围的单元格。

function hyperlink(){
  var activeSheet = SpreadsheetApp.getActiveSheet();
  var a1 = activeSheet.getSelection().getActiveRange().getA1Notation();
  var values = activeSheet.getRange(a1).getValues();
  var hyperVal= values.map(row=> row.map(col=> `=HYPERLINK("${col}","${col}")` ));
  activeSheet.getRange(a1).setValues(hyperVal);
  activeSheet.getRange(a1).setShowHyperlink(true); /* I initially just tried doing this, but without setting the HYPERLINK formula, it did nothing */
}