Google 工作表:根据日期提取行

Google Sheets: Pulling rows based on date

我有下面的表格...

打印出对以下电子表格的回复

我有这个当前脚本,它获取行并将它们全部打印在 google 文档中:

function saveAsDOC() {
  var fileName = "Announcements Test File";
  var doc = DocumentApp.create(fileName);
  SpreadsheetApp.getActiveSpreadsheet().toast('Generating file..', 'Status', 3);

  // Get the range in the spreadsheet
  var ws = SpreadsheetApp.getActiveSpreadsheet().getDataRange();
  try {
    var data = ws.getValues();

    // Print the annoucements in a loop
    if (data.length > 1) {
      for (var row = 1; row < data.length; row++) {
        if(new Date(data[row][2]) <= new Date()) {
          for (var col = 1; col < data[row].length; col++) {
            if(data[row][col]!=""){
              doc.appendParagraph(data[row][col]);
              doc.appendParagraph("")
            }
          }
        }
      }
    }
  }

  catch(err) {
    Logger.log(err);
    Browser.msgBox(err);
  }
}

我想修改此脚本,以便它只打印 'Start Date' 今天和随后几天直到 'End Date' 的行。我在互联网上找到没有可以帮助我,所以我来了。

编辑:更新了答案。

new Date() 将给出 "now" 的日期对象。然后简单的比较就可以了:

if(new Date(data[row][2]) > new Date() || new Date(data[row][3]) > new Date())

我不确定你的意思,但这是:如果 startDate 在未来或 endDate 在未来。

完整代码

function saveAsDOC() {
  // Prompts the user for the file name
  var fileName = "TEMP weggooien";
  var doc = DocumentApp.create(fileName);

  // Get the range in the spreadsheet
  var ws = SpreadsheetApp.getActiveSpreadsheet().getDataRange();
  try {
    var data = ws.getValues();

    // Loop through the data in the range and create paragraphs with the appropriate heading
    if (data.length > 1) {
      for (var row = 1; row < data.length; row++) {
        if(new Date(data[row][2]) > new Date() || new Date(data[row][3]) > new Date()) {
          for (var col = 1; col < data[row].length; col++) {
            if(data[row][col]!=""){
              doc.appendParagraph(data[row][col]);
            }
          }
        }
      }
    }
  }
  catch(err) {
    Logger.log(err);
    Browser.msgBox(err);
  }
}