搜索列和显示行

时间:2019-10-03 18:18:53

标签: google-apps-script google-sheets google-sheets-api

我需要从此Google工作表中发布个人的考试成绩。 Spreadsheet。我找到了一个代码,如果我使用“?id = 1” like运行应用程序URL时可以执行此操作,但它仅显示名称。我还需要显示标记(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 个答案:

答案 0 :(得分:1)

这对我来说就像是魅​​力

/**
 *
 * @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";

相反。