Javascript 谷歌脚本:格式化数组中的URL。推送

Javascript 谷歌脚本:格式化数组中的URL。推送,javascript,arrays,google-apps-script,formatting,google-sheets,Javascript,Arrays,Google Apps Script,Formatting,Google Sheets,我有一个工作脚本,在表单提交时,特定的行从一个工作表移动到另一个工作表。我正在推送的字段之一是url 在第二张纸上,链接被列出,它是超链接的,但它真的很难看,我真的想格式化它,使它显示“编辑”与超链接。我试过很多方法,但我的知识有限,所以我得到的都是错误。我希望有人能给我指出正确的方向 这是我的密码。我是个新手,所以剧本一点也不复杂。如有任何帮助/建议,将不胜感激 function copyAdHoc(){ var ss = SpreadsheetApp.getActiveSpreadshe

我有一个工作脚本,在表单提交时,特定的行从一个工作表移动到另一个工作表。我正在推送的字段之一是url

在第二张纸上,链接被列出,它是超链接的,但它真的很难看,我真的想格式化它,使它显示“编辑”与超链接。我试过很多方法,但我的知识有限,所以我得到的都是错误。我希望有人能给我指出正确的方向

这是我的密码。我是个新手,所以剧本一点也不复杂。如有任何帮助/建议,将不胜感激

function copyAdHoc(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = SpreadsheetApp.setActiveSheet(ss.getSheetByName("Form Responses 1"));
  var data = sh.getRange(2, 1, sh.getLastRow() - 1, sh.getLastColumn()).getValues();

  // Grab the Headers from master sheet
  var headers = sh.getRange(1,1,1,sh.getLastColumn()).getValues();
  var date = headers[0].indexOf('Effective Date');
  var name = headers[0].indexOf('Employee Name');
  var loc = headers[0].indexOf('Location');
  var issue = headers[0].indexOf('Description/Question/Issue');
  var add = headers[0].indexOf('Additional Information');
  var change = headers[0].indexOf('Is this a Qualifying Life Event?');
  var url = headers[0].indexOf('Form URL');
  var category = headers[0].indexOf('Primary Category');
  var status = headers[0].indexOf('Current Status');
  var users = headers[0].indexOf('Users');

  // Grab only the relevant columns
  for(n = 0; n < data.length; ++n ) { // iterate in the array, row by row
    if (data[n][change] !== "Yes" & data[n][category] !== "Employee Relations" & data[n][date] !== "") { // if condition is true copy the whole row to target

    var arr = [];
    arr.push(data[n][url]);
    arr.push(data[n][users]);
    arr.push(data[n][date]);
    arr.push(data[n][loc]);
    arr.push(data[n][name]);
    arr.push(data[n][category]);
    arr.push(data[n][issue] + ". " + data[n][add]);
    arr.push(data[n][status]);

    var sh2 = SpreadsheetApp.setActiveSheet(ss.getSheetByName("Ad Hoc")); //second sheet of your spreadsheet
    sh2.getRange(sh2.getLastRow()+1,2,1,arr.length).setValues([arr]); // paste the selected values in the 2cond sheet in one batch write

  }
 }
}
函数copyAdHoc(){ var ss=SpreadsheetApp.getActiveSpreadsheet(); var sh=SpreadsheetApp.setActiveSheet(ss.getSheetByName(“表单响应1”)); var data=sh.getRange(2,1,sh.getLastRow()-1,sh.getLastColumn()).getValues(); //从母版纸抓取标题 var headers=sh.getRange(1,1,1,sh.getLastColumn()).getValues(); var date=headers[0]。indexOf('生效日期'); var name=headers[0]。indexOf('Employee name'); var loc=headers[0]。indexOf('Location'); var issue=headers[0]。indexOf('Description/Question/issue'); var add=headers[0].indexOf(“附加信息”); var change=headers[0]。indexOf('这是符合条件的生命事件吗?'); var url=headers[0]。indexOf('Form url'); var category=headers[0]。indexOf('Primary category'); var status=headers[0]。indexOf('Current status'); var users=headers[0]。indexOf('users'); //只抓取相关列 对于(n=0;n这有点混乱,但我知道实现您尝试的唯一方法是在超链接的左侧插入一列,将“编辑”一词右对齐,然后删除两者之间的边框。

从您的描述中,我假设您希望“编辑”一词是超链接的。为此,请尝试以下方法:

function getHyperlink(url)
{
  return "=HYPERLINK(\""+url+"\","+"\"Edit\""+")";
}

function mainFunct()
{
  //Do necessary steps
  var tarLink = "https://www.google.com";
  var tarRng = tarSheet.getRange(rowNum, colNum).setValue(getHyperlink(tarLink));
  //perform other steps
}
编辑: 忘了提及,因为您正在将值推送到数组中。。。您可以通过类似的方式来实现,或者只是将超链接存储在变量中,或者像所有其他值一样直接将其推送到数组中。或者,如果您正在处理一个包含静态和动态部分的超链接,例如:
post\u id
不断变化,但大多数URL是静态的,那么您只需将
post\u id
传递给getHyperlink函数并获得所需的超链接,就可以轻松地处理它。希望这有帮助