首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用GAS查询/搜索从一个Google电子表格到另一个电子表格的信息?

如何使用GAS查询/搜索从一个Google电子表格到另一个电子表格的信息?
EN

Stack Overflow用户
提问于 2013-11-01 13:21:38
回答 1查看 375关注 0票数 0

我想要创建一个Google Apps脚本来执行以下操作:当我选择一个包含电子表格中一个人的名字的单元格(例如,一个记录销售的电子表格),并使用一个菜单按钮调用该函数时,该脚本在另一个电子表格中进行搜索(查询),该电子表格存储完整的消费者数据,并包含我从该消费者那里需要的所有信息,以生成合同或付款收据。使用Google脚本实现从另一个电子表格中的电子表格中搜索信息的最佳策略是什么?您有类似于此实现的脚本示例吗?谢谢您的任何帮助/指导!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-01 13:29:47

没有由单元格选择触发的事件,您必须使用菜单项或按钮来调用函数,或者,如果用例可以接受,则编辑单元格以触发onEdit事件。

“搜索部分”实际上非常简单,电子表格本身或另一个电子表格中的数据并不重要,它只会改变您访问数据的方式( getActiveSpreadsheetopenById())。从那里获取所有的值,并在结果的2D数组中进行搜索。

在您的注释之后进行编辑:这里是这样一个代码的示例,它返回找到的单元格的范围(我们得到了A1符号,当然也可以是getValue() )。

代码语言:javascript
复制
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...
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19727587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档