【问题标题】:Show multiple sheet using googlescript使用谷歌脚本显示多个工作表
【发布时间】:2021-03-21 02:49:14
【问题描述】:

所以我想使用此代码从我的谷歌工作表中检索数据,并且我想同时检查多个工作表名称,例如“Example1”和“Example2”。

function doGet(e) {
  
  return HtmlService.createTemplateFromFile("Index").evaluate()
  .setTitle("Project 1")
  .addMetaTag('viewport', 'width=device-width, initial-scale=1')
  .setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
}


/* PROCESS FORM */
function processForm(formObject){ 
  var concat = formObject.searchtext.toString().toLowerCase()+formObject.searchtext2;
  var result = "";
  if(concat){//Execute if form passes search text
      result = search(concat);
  }
  return result;
}

//SEARCH FOR MATCHED CONTENTS ;
function search(searchtext){
  var spreadsheetId   = '1-BLridljB9evNODil4HTI904jZNEi-h3O4FhY_qw9VQ'; //** CHANGE !!!!
  var sheetName = "Example1"
  var range = SpreadsheetApp.openById(spreadsheetId).getSheetByName(sheetName).getDataRange();
  var data = range.getValues();
  var ar = [];
  
  data.forEach(function(f) {
    if (~[f[6]].indexOf(searchtext)) {
      ar.push([ f[1],f[2],  '<a target="_blank" href=' + f[3] + '>' + f[5] + '</a>'  ,f[4] ]);
    }
  });
                                           
  return ar;
};

哦.. 起初我也已经使用我的个人 ID 运行并编辑了此代码,但它没有显示任何内容,它显示未找到数据,有关更多信息,我的电子表格中有 6 列。

【问题讨论】:

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


【解决方案1】:

试试这个方法:

data.forEach(function(f) {
    if (~f[6].toString().indexOf(searchtext)) {
      ar.push([ f[1],f[2],  '<a target="_blank" href=' + f[3] + '>' + f[5] + '</a>'  ,f[4] ]);
    }
  });

我是这样测试的:

function search(searchtext='xxx'){
  //var spreadsheetId   = '1-BLridljB9evNODil4HTI904jZNEi-h3O4FhY_qw9VQ'; //** CHANGE !!!!
  var sheetName = "Sheet1"
  var range = SpreadsheetApp.getActive().getSheetByName(sheetName).getDataRange();
  var data = range.getValues();
  var ar = [];
  
  data.forEach(function(f) {
    if (~f[6].toString().indexOf(searchtext)) {
      ar.push([ f[1],f[2],  '<a target="_blank" href=' + f[3] + '>' + f[5] + '</a>'  ,f[4] ]);
    }
  });
  Logger.log(JSON.stringify(ar));                                        
  //return ar;
};

对我来说没问题

现在多张纸

function search(searchtext = 'xxx') {
  let ar = [];
  //var spreadsheetId   = '1-BLridljB9evNODil4HTI904jZNEi-h3O4FhY_qw9VQ'; //** CHANGE !!!!
  const names = ['Sheet1', 'Sheet2'];
  names.forEach((name) => {
    var range = SpreadsheetApp.getActive().getSheetByName(name).getDataRange();
    var data = range.getValues();
    data.forEach(function (f) {
      if (~f[6].toString().indexOf(searchtext)) {
        ar.push([f[1], f[2], '<a target="_blank" href=' + f[3] + '>' + f[5] + '</a>', f[4]], name);
      }
    });
  });
  Logger.log(JSON.stringify(ar));
  //return ar;
};

【讨论】:

  • 我尝试将电子表格 ID 放在那一行,但它没有显示任何内容 href= 1AtcJI2zAAxCXa0E540nWF1IOMUH0RRxH1BWE_8nB4LU'
  • 我不明白你的评论。如何将电子表格放在一行中?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 2012-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多