Google apps script 使用importxml在Google Sheet中创建每日投资组合跟踪器

Google apps script 使用importxml在Google Sheet中创建每日投资组合跟踪器,google-apps-script,google-sheets,google-sheets-importxml,Google Apps Script,Google Sheets,Google Sheets Importxml,我试图在谷歌表格中追踪一些股票的每日价值和日期。目前,数据捕获代码运行良好,但每次发生更改时,它都会用新值替换所有值。 在A2中,我有一个基于IMPORTXML的单元格,它从晨星获取日期,在B2中,它基于替代(替代)(IMPORTXML(CONCATENATE…)从FT获取每日值 下面显示我的脚本代码: function saveData() { var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("sheet1");

我试图在谷歌表格中追踪一些股票的每日价值和日期。目前,数据捕获代码运行良好,但每次发生更改时,它都会用新值替换所有值。 在A2中,我有一个基于IMPORTXML的单元格,它从晨星获取日期,在B2中,它基于替代(替代)(IMPORTXML(CONCATENATE…)从FT获取每日值

下面显示我的脚本代码:

function saveData() {
  var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("sheet1");
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("sheet2")

  var current_date = sheet.getRange('Tracker!A2').getValues();
  var current_value = sheet.getRange('Tracker!B2').getValues();

  sheet.appendrow([current_date, current_value]);
Tracker是页面的名称。运行代码告诉我无法从null获取范围。请问有什么问题?

这个答案如何

修改点:
  • 在脚本中,使用了3个工作表名称,即“sheet1”、“sheet2”和“Tracker”。
    ss
    sheet
    分别是“sheet1”和“sheet2”的工作表对象。并且,
    current_date
    current_value
    分别从“Tracker”工作表上的“A2”和“B2”中检索。
    • 在这种情况下,我认为运行代码的
      错误的原因告诉我,我无法从null获取范围。
      是工作表名称“sheet2”的工作表可能未包含在电子表格中
    • 但是,在您的脚本中,使用了
      sheet.appendrow([current_date,current_value]);
      。那么您想将值放在“sheet2”或其他工作表中吗?关于这一点,我无法从您的问题中理解
  • 如果要使用
    appendrow
    ,请修改为
    appendrow
  • 在脚本中,由
    getValues()
    检索的二维数组用作
    [current_date,current_value]
    的值。在这种情况下,即使将
    appendrow
    修改为
    appendrow
    ,类似于
    [Ljava.lang.Object;@##
    的值也会放在单元格中
  • 如果要从工作表“跟踪器”上的“A2”和“B2”单元格中检索值并将检索到的值附加到工作表中,可以使用
    Tracker!A2:B2
    作为范围
当上述各点反映到脚本中时,它将变成如下所示

修改脚本: 请将目标工作表名称设置为
sheetName

function saveData() {
  var sheetName = "###";  // Please set the destination sheet name.

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var value = ss.getRange('Tracker!A2:B2').getValues();
  ss.getSheetByName(sheetName).appendRow(value[0]);
}
参考资料:
    • 这个答案怎么样

      修改点:
      • 在脚本中,使用了3个工作表名称,即“sheet1”、“sheet2”和“Tracker”。
        ss
        sheet
        分别是“sheet1”和“sheet2”的工作表对象。并且,
        current_date
        current_value
        分别从“Tracker”工作表上的“A2”和“B2”中检索。
        • 在这种情况下,我认为运行代码的
          错误的原因告诉我,我无法从null获取范围。
          是工作表名称“sheet2”的工作表可能未包含在电子表格中
        • 但是,在您的脚本中,使用了
          sheet.appendrow([current_date,current_value]);
          。那么您想将值放在“sheet2”或其他工作表中吗?关于这一点,我无法从您的问题中理解
      • 如果要使用
        appendrow
        ,请修改为
        appendrow
      • 在脚本中,由
        getValues()
        检索的二维数组用作
        [current_date,current_value]
        的值。在这种情况下,即使将
        appendrow
        修改为
        appendrow
        ,类似于
        [Ljava.lang.Object;@##
        的值也会放在单元格中
      • 如果要从工作表“跟踪器”上的“A2”和“B2”单元格中检索值并将检索到的值附加到工作表中,可以使用
        Tracker!A2:B2
        作为范围
      当上述各点反映到脚本中时,它将变成如下所示

      修改脚本: 请将目标工作表名称设置为
      sheetName

      function saveData() {
        var sheetName = "###";  // Please set the destination sheet name.
      
        var ss = SpreadsheetApp.getActiveSpreadsheet();
        var value = ss.getRange('Tracker!A2:B2').getValues();
        ss.getSheetByName(sheetName).appendRow(value[0]);
      }
      
      参考资料: