पाठ के साथ एक सेल मिलने के बाद मैं कॉलम के भीतर से पंक्तियों की एक सूची प्राप्त करने का प्रयास कर रहा हूं। तो मेरे उदाहरण में मुझे "नाम" सेल के बाद पहले कॉलम में सभी नाम चाहिए

enter image description here

मेरे पास वर्तमान में निम्नलिखित हैं लेकिन मुझे नहीं पता कि मैं क्या कर रहा हूं क्योंकि यह पहली बार Google स्क्रिप्ट का उपयोग कर रहा है

function getNames(){
  var sheet = SpreadsheetApp.openById(mastersPoolID);
  var data = sheet.getDataRange().getValues();
  var col = data[0].findIndex((name) => name === 'Name') + 1;
  
  Logger.log(col);

  return ContentService
  .createTextOutput(JSON.stringify(col))
  .setMimeType(ContentService.MimeType.JSON);
}
0
Wazza 11 नवम्बर 2020, 21:42

1 उत्तर

सबसे बढ़िया उत्तर

यह करते हैं काम:

function getNames(){
  var sheet = SpreadsheetApp.openById(mastersPoolID);
  var data = sheet.getRange("A:A").getValues().flat().filter(a => a != '');
  return  data.slice(data.indexOf('Name') + 1);
}

व्याख्या:

  1. हमें केवल पहले कॉलम की जरूरत है, इसलिए चीजों को सरल बनाने के लिए हम केवल कॉलम ए को ही लेंगे।
  2. Array.prototype.flat getValues() द्वारा लौटाए गए ऐरे को समतल करता है
  3. Array.prototype.filter उन सभी तत्वों को हटा देता है जो शर्त को पूरा नहीं करते हैं, इसमें सभी खाली तार हैं।
  4. Array.prototype.indexOf किसी तत्व की स्थिति ढूंढता है
  5. Array.prototype.slice तत्वों को स्थिति से प्राप्त करता है
var AA = [[''],[''],['Name'], [''],['John'],[''],['Mary']];
var data = AA.flat().filter(a => a != '');
console.log( data.slice(data.indexOf('Name') + 1));
3
Rubén 12 नवम्बर 2020, 00:05