如何使用谷歌应用程序脚本在html中返回一组url作为链接

How can I return an array of urls as links in html using google apps scripts

本文关键字:一组 url 链接 返回 应用程序 谷歌 何使用 脚本 html      更新时间:2023-09-26

我有一个谷歌工作表,在一列中包含URL列表。我想发布一个web应用程序,将指定数量的url添加到数组中,然后将该数组作为html返回
我已经搜索并尝试了几十种方法,但我能做的最好的事情是使用ContentService.createTextOutput将其作为逗号分隔的文本返回。任何使用html服务的尝试都会失败,最多返回未定义的文本
下面是我目前正在使用的代码。它就像我想要的一样工作,直到返回结果。我的编码知识非常有限,到处都是,包括python、php和javascript/google脚本。如果能为我找到一个可行的解决方案,我们将不胜感激。

function doGet() {
var ss = SpreadsheetApp.openById("1bRo9zY_xxxxxxxxxxxxxxxxxx-j_n10D9r-M");
var sheet = ss.getSheetByName('Sheet1'); 
var range = sheet.getRange(1,1);
var cell = sheet.getActiveCell();  
var row = cell.getRow();
var col = cell.getColumn();
var range = sheet.getActiveRange();
var data = range.getValue();  
var numRows = range.getNumRows();
var numCols = range.getNumColumns();
var lastRow = sheet.getLastRow();
var arr = [];
var qnty = 5
for (var i = 0; i < qnty; i++) {
  arr.push(data); 
  range.clear();
  try {
     sheet.getRange(row + numRows, col, lastRow - row - numRows + 1,                                        numCols).moveTo(sheet.getRange(row, col, lastRow - row - numRows + 1, numCols));
     sheet.getRange(lastRow - numRows + 1, col, numRows, numCols).clearContent();
    var data = range.getValue();
 }
  catch(err) {
    if (row + numRows > lastRow) {
     SpreadsheetApp.getUi().alert('Select a different range: Cannot shift up           from the last populated row of a sheet.');
} else {
  SpreadsheetApp.getUi().alert('Could not move data: Please make sure nobody         else is editing the column(s) and try again.');
}  
  Logger.log( arr.length); 
}
}
 return ContentService.createTextOutput([arr]);
}

在第一个for循环之后尝试这个

for (var x = 0; x < arr.length; x++) {
    arr[x] = "<a href='"" + arr[x] + "'">" + arr[x] + "</a>";
}
return ContentService.createTextOutput(arr);