Столбец поиска и строка отображения - PullRequest
0 голосов
/ 03 октября 2019

Мне нужно опубликовать индивидуальный результат экзамена из этого листа Google. Электронная таблица . Я нашел код, который может сделать это, если я запускаю URL-адрес приложения с «? Id = 1» , как , но он отображает только имя. Мне нужно также показать отметки (столбец C - G). Код, который я использовал:

var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/1L1Qu6QCaDucr4Jy5eOAnQkX-wpYjz6eevqAMzBc72iQ/edit#gid=0");
var sheet = ss.getSheetByName("Sheet1");

function doGet(e){
 return search(e) ;
}  

function doPost(e){
 return search(e) ;
}  


function search(e){
 var id = e.parameter.id;
  
  var values = sheet.getRange(2, 1, sheet.getLastRow(),sheet.getLastColumn()).getValues();
  
  for(var i = 0;i<values.length; i++){
    
    if(values[i][0] == id ){
      i=i+2;
      
      var name = sheet.getRange(i,3).getValue();
      return ContentService.createTextOutput(name).setMimeType(ContentService.MimeType.TEXT);
    }
  }
  return ContentService.createTextOutput("Id not found").setMimeType(ContentService.MimeType.TEXT);
  
}

Как показать всю строку вместо одной ячейки?

1 Ответ

1 голос
/ 03 октября 2019

Это работает для меня как талисман

/**
 *
 * @param {*} e
 */
function search(e) {
  var id = e.parameter.id;

  var values = sheet
    .getDataRange()
    .getValues()
    .filter(function(row) {
      return row[0] == id;
    });

  var content = JSON.stringify(values);
  return ContentService.createTextOutput(content).setMimeType(
    ContentService.MimeType.TEXT
  );
}

Я могу расширить лист по мере необходимости, и мне не нужно заряжать скрипт одновременно

Если вы ожидаетевернуть "Id not found" вместо

var content = values.length ? JSON.stringify(values) : "Id not found";

.

...