将一列字符串从一个 Google Sheet 传递到另一个 Google Sheet 并回读在第二个 sheet 中计算的相应输出

Passing a column of string from one Google Sheet to another and readback corresponding outputs calculated in the second sheet

我在同一个 Google 工作簿文件中有 2 个 Sheet:

我想要 运行 一个允许将 Sheet1 A1:A100 的每个实体逐一传递给 Sheet2 C1 的循环。接下来,我想从单元格 D1 回读相应的 Sheet2 输出并将其填充到 Sheet1 个单元格 B1:B100.

问题: 有没有办法通过在 Google Sheets 本身中编码来实现这一点?如果没有,是否有其他方法,例如使用 Python?

描述

这是一个 Google 应用程序脚本,它将遍历符号和 return 来自 Sheet2!D1 的计算值。

它是从一个新的菜单项测试中执行的。

Code.gs

function onOpen() {
  let ui = SpreadsheetApp.getUi();
  let menu = ui.createMenu("Test");
  menu.addItem("Run Test","runTest");
  menu.addToUi();
}

function runTest() {
  try {
    let sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
    let symbols = sheet.getDataRange().getValues();
    symbols.forEach( symbol => getResults(symbol) );
    symbols = symbols.filter( symbol => symbol[0] !== "" );
    sheet.getRange(1,1,symbols.length,symbols[0].length).setValues(symbols);
  }
  catch(err) {
    SpreadsheetApp.getUi().alert("Error in runTest: "+err);
  }
}

function getResults(symbol) {
  try {
    if( symbol[0] === "" ) return;
    let sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2");
    sheet.getRange(1,3).setValue(symbol[0]);
    SpreadsheetApp.flush();
    symbol[1] = sheet.getRange(1,4).getValue();
  }
  catch(err) {
    SpreadsheetApp.getUi().alert("Error in getResults: "+err);
  }
}

参考