Milky04 Ответов: 0

Как мне отфильтровать свои результаты, чтобы я отображал только определенные строки


Всем привет,

В настоящее время я просто изучаю Javascript и делаю приложение для своего клуба. Один из участников запросил страницу, на которой будут отображаться все участники, зарегистрировавшиеся в этот день.

До сих пор это код, который у меня есть, но он возвращает ошибку "скрипт завершен, но возвращаемое значение не является поддерживаемым типом", но когда он не находит никакой строки с сегодняшней датой. он возвращает мое заявление Else о том, что "записи не найдены"

Вот что я закодировал до сих пор ниже:

<pre>// Commences Check input
function check(date){
      var in_time = Utilities.formatDate(new Date(), 'Etc/GMT', 'yyyy-MM-dd');
      var successId = 0;
      var rows = dailySheet.getDataRange().getValues();

      var filteredRows = rows.filter(function(row){
        if (row[4] === in_time) {
          successId = Number(successId)+1;
          return row;
        }
        
      })
      
      if(successId == 1){
      
        var i;
        
        for (i = 0; i < filteredRows.length; i++) {
         return ContentService.createTextOutput(filteredRows[i][1]+" "+filteredRows[i][2]).setMimeType(ContentService.MimeType.TEXT)+ "<br>";
        } 
      
      
        
      }
      
      else{
        return ContentService.createTextOutput("No Entries Found").setMimeType(ContentService.MimeType.TEXT);
      } 
      
     
  
 }



Вот как выглядит лист excel.
https://imgur.com/ubah3eM

Записей не найдено.
https://imgur.com/ABgMVCG

Ошибка.
https://imgur.com/MiBpG5e

Что я уже пробовал:

я пытался перекодировать его, но безрезультатно.

Это работает, но только тогда, когда есть одна запись сегодняшней даты, когда есть более одной записи, она отображает не найденные записи вместо многократных записей.

var ss = SpreadsheetApp.openByUrl("https://docs.");
var dailySheet = ss.getSheetByName("daily_attendance");
var memberSheet = ss.getSheetByName("membership");

// Commences function to retrieve action variable from app.
function doPost(e){
  var action  = e.parameter.action;
  
  if(action == "check"){
    return check(e);
  }
      
}

// Commences Check Code input
function check(e){
      var in_time = Utilities.formatDate(new Date(), 'Etc/GMT', 'yyyy-MM-dd');
      var successId = 0;
            
      var rows = dailySheet.getDataRange().getValues();
      var filteredRows = rows.filter(function(row){
        if (row[4] === in_time) {
          successId = Number(successId)+1;
          return row;
        }
        
      });
      
      
      
      if(successId == 1){
      
        return ContentService.createTextOutput(filteredRows[0][2]+" "+filteredRows[0][3]).setMimeType(ContentService.MimeType.TEXT); 
      }
      
      else{
        return ContentService.createTextOutput("No Entries Found").setMimeType(ContentService.MimeType.TEXT);
      } 
      
     
  
 }

Gerry Schmitz

Если это лист Excel, то почему вы не используете VBA? Вот для чего он предназначен.

Mohibur Rashid

он не упомянул, но он использует google doc, а класс и функции-из сценария google aps https://developers.google.com/apps-script/reference/content/content-service

Mohibur Rashid

я не знаю, имеет ли это какое-либо отношение, но у вас есть `+ "<br>"; При вашем условии. это в вашем первом коде. это нарушает ваш javascript

0 Ответов