0

我正在尝试将电子表格用作数据库,其中每张工作表都是一个表格,并且一个人的姓名用作主键(这似乎不是最好的解决方案,但良好的电子表格界面让我更喜欢这个解决方案而不是尝试使用 ScriptDB。)我想做以下事情:当您在工作表上选择一个名称并按下我添加的菜单上的一个按钮时,一个函数在另一个表和一个屏幕中执行搜索并显示所有该查询在另一个表中的结果,显示只有该表包含的属性记录(稍后我想添加从 GDocs 模板生成文本文件的可能性)。我的问题是:1)考虑到这个屏幕/面板 UI 的长度是可变的(因为其他表中的记录号可能会有所不同),在 Google Apps 脚本中创建这个面板/UI 的最佳方法是什么?(我不

2)除了这个解决方案(在结果二维数组中搜索):

function test(){ // to test the find function with an argument, 'any' in this case 
  var result = findItem('any');
  if(result){Logger.log(result.getA1Notation())}else{Logger.log('no luck !')};
}

function findItem(item){
  var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var data = ss.getDataRange().getValues()
  for(var n = 0;n<data.length;++n){
    if(data[n].indexOf(item)>-1){ // this is a "strict" find, ie the value must be the entire search item. If you want to do partial match you should compare differently...
      return (ss.getRange(n+1,data[n].indexOf(item)+1)); // if found return the range. note the +1 because sheets have 1 index while arrays have 0 index
    }
  }
  return false;// if we come to the end of sheet without result...
}

有另一种方法来执行这样的查询吗?

谢谢你的帮助!

4

1 回答 1

0

创建一个 UI 实例。然后主面板内的可滚动面板是执行此操作的最佳方式,然后使用数组搜索数据。我通常创建页眉正文和页脚面板,正文可滚动

于 2013-11-02T23:44:19.950 回答