将文本添加到数组值的输出中

时间:2018-10-06 13:05:23

标签: javascript arrays google-apps-script google-sheets google-finance

我刚刚开始学习Apps脚本,我需要向数组的每个值添加一些文本。这段代码只是将值放在另一列中:

function getData() {
  var sheet1 = SpreadsheetApp.getActiveSpreadsheet()
      .getSheetByName("Stocks");
  var symbol = sheet1.getRange('A1:A7').getValues();
  sheet1.getRange('C1:C7').setValues(symbol);
}

我想在输出中添加一些文本,如下所示:

function getData() {
  var sheet1 = SpreadsheetApp.getActiveSpreadsheet()
      .getSheetByName("Stocks");
  var symbol = sheet1.getRange('A1:A7').getValues();
  sheet1.getRange('C1:C7').setValues(
      '=GOOGLEFINANCE("FRA:' + symbol + ")'
  );
}

但是我知道这行不通。如何添加到每个要写入的值?

1 个答案:

答案 0 :(得分:0)

使用循环遍历您的值数组

function getData() {
  var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Stocks");
  var symbol = sheet1.getRange('A1:A7').getValues();
  var destRange = sheet1.getRange('C1:C7');

  for (var i = 0; i < symbol.length; i++)
    symbol[i][0] = '=GOOGLEFINANCE("FRA:' + symbol[i][0] + '")');

  destRange.setFormulas(symbol);
}

由于范围A1:A7C1:C7具有相同的宽度和高度,您可以使用该数组返回然后再使用setFormulas(array),如果只使用一次{{1} }数组(如果没有),则在循环之前声明一个空数组:

symbol

然后在您的for循环内执行:

var resultArray = []

然后在for循环 resultArray.push(['=GOOGLEFINANCE("FRA:' + symbol[i][0] + '")']); 外使用:

setFormulas()