首页 > 解决方案 > 使用 Google 脚本 ReDash 到 Google 表格 - 如何在末尾添加日期?

问题描述

我正在尝试使用以下 Google 脚本从 Redash 添加数据,然后在末尾添加当前日期。我在哪里可以添加一个var now = new Date();来输入最后一行的日期?

期望的结果如下。AC 是我已经从 Redash 成功提取的数据,但我想添加当前日期。如果有帮助,日期将始终为 F。

https://www.dropbox.com/s/lfu9jk06j0fduo8/Screenshot%202020-05-20%2018.44.26.png?dl=0

谢谢您的帮助!

//FUNCTION FOR GETTING DATA FROM REDASH QUERIES
function getapidata(response, sheetname) {
  var array1 = response.getContentText(); //Store data from redash into this variable
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetname);
  var iLen = array1.length;
  var i = 0;
  var stringvalue1 = "";
  var s1 = "";
  var num1 = 1;
  var num2 = 1;
  var noheader = 1;
  for (i = 0; i < iLen; i++) {
    var j = i;
    do {
      s1 = array1[j];
      if (s1 == ",") {
        if (noheader == 1)
          noheader = 1;
        else
          sheet.getRange(sheet.getLastRow() + num1, num2).setValue(stringvalue1);
        num1 = 0;
        num2++;
        stringvalue1 = "";
      } else
        stringvalue1 = stringvalue1 + s1;
      j++;
    } while (s1 != "\n")
    if (noheader == 1)
      noheader = 1;
    else
      sheet.getRange(sheet.getLastRow() + num1, num2).setValue(stringvalue1);
    noheader = 2;
    num1 = 1;
    num2 = 1;
    stringvalue1 = "";
    i = j - 1;
  }
}

function getfromRedash() {
  //Current SHR (Max Preps)
  var redashapi = "API"; //Storing Redash API Value.
  var sheetname = "SHEETTITLE"; //Assign your sheetname(where you would want data to be imported) to this variable
  var response = UrlFetchApp.fetch(redashapi, {
    muteHttpExceptions: true
  }); //Storing Redash Cached Query result in this variable.
  Logger.log(response.getContentText()); //If any error, error to be logged
  getapidata(response, sheetname); //Call function for writing data in google sheets
  //The 5 lines of code above can be repeated for multiple sheets in a single google spreadsheet file. For. Eg. If you have 5 different sheets in a single google worksheet, you can just copy paste the above lines of code, and just change the variable “redashapi” so as to make calls to the appropriate redash queries.
}

//THIS FUNCTION IS TO MAKE A NEW MENU IN GOOGLE SHEETS
function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('MENU')
    .addItem('Get Data from Redash', 'getfromRedash')
    .addToUi();
}

标签: javascriptgoogle-apps-scriptgoogle-sheets

解决方案


好吧,你的行号寻址有点混乱,因为 sheet.getLastRow() 每次你在最后一行之后添加值时都会改变,但你可以写类似

sheet.getRange(sheet.getLastRow() + num1, 6).setValue(new Date());

插入日期。您可以参考其他答案,例如

如何格式化 JavaScript 日期

用于日期格式。


推荐阅读