Javascript Google Sheets脚本按工作表名称筛选

Javascript Google Sheets脚本按工作表名称筛选,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我需要一份包含特定单词的表单列表。例如,我有4张纸,大树,小树,大房子,小房子,我只需要得到包含单词“树”的纸。我试着使用indexOf函数,但没用。我是新手,任何帮助我都将不胜感激。这是我迄今为止尝试过的,但它不起作用 const ss = SpreadsheetApp.getActiveSpreadsheet(); const allSheets = ss.getSheets(); const neededSheets= ["tree"]; const filte

我需要一份包含特定单词的表单列表。例如,我有4张纸,大树,小树,大房子,小房子,我只需要得到包含单词“树”的纸。我试着使用indexOf函数,但没用。我是新手,任何帮助我都将不胜感激。这是我迄今为止尝试过的,但它不起作用

const ss = SpreadsheetApp.getActiveSpreadsheet();
const allSheets = ss.getSheets();
const neededSheets= ["tree"];
   
const filteredListOfSheets = allSheets.filter(s=> neededSheets.lastIndexOf(s.getSheetName()) == 0);
解决方案: 这就是您正在寻找的:

function myFunction() {
  
const ss = SpreadsheetApp.getActiveSpreadsheet();
const allSheets = ss.getSheets();
const allSheets_names=allSheets.map(sheet=>sheet.getSheetName())  
const neededSheets= ["tree"];   
const filteredListOfSheetsNames = []   
neededSheets.forEach(ns =>               
        allSheets_names.forEach( (as,index) =>
       {if (as.indexOf(ns)>-1){filteredListOfSheetsNames.push(as)}}))                   
const filteredListOfSheets =  filteredListOfSheetsNames.map(name =>ss.getSheetByName(name))   
}
说明:
  • filteredListOfSheetsNames
    包含您需要的工作表名称 正在查找并
    筛选列表表
    包含该表 您正在查找的对象
  • 因此,您可以使用
    filteredListOfSheets
    的元素 应用工作表操作,例如,
    filteredListOfSheets[0]。getSheetName()
  • 此外,代码是灵活的。也就是说,你可以有更多的项目 在
    neededSheets
    数组中:
    const neededSheets=[“tree”,“house”]