dmb*_*nim 3 google-sheets google-apps-script
可以通过用户界面向谷歌电子表格中的单元格添加"链接".我想使用Google Apps脚本执行相同的操作.我期待在Range类上有一个方法,但是看不到它.有谁知道如何做到这一点?
Gui*_*Tod 15
自 2020 年 6 月起,可以选择设置富文本链接网址。所以现在您可以执行以下操作:
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();
rangeToAddLink.setRichTextValue(richText);
Run Code Online (Sandbox Code Playgroud)
结果是一个带有文本的单元格,其中包含指向您建立的 Web 的链接。与最终在单元格内留下一个允许重定向到另一个页面的公式的 HYPERLINK 函数非常不同。
RANGE.setFormula加上HYPERLINK公式应该可以满足您的需求.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var cell = sheet.getRange("B5");
cell.setFormula('=HYPERLINK("http://www.google.com/","Google")');
Run Code Online (Sandbox Code Playgroud)
小智 5
我今天遇到了这个问题。这是我的解决方案。这是 ES6,因此您需要为 Apps 脚本运行新的 V8 引擎。此功能专门针对选定的单元格范围。
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 */
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4795 次 |
| 最近记录: |