【问题标题】:How to use if then in google app scripts?如果那么在谷歌应用脚​​本中如何使用?
【发布时间】:2018-05-03 11:29:52
【问题描述】:

我正在开发一款将数据扫描到 Google 表格中的应用。我有两张纸:sheet1 和 sheet2。在 sheet1 中,执行扫描后将数据输入其中。但是在输入扫描数据之前,我想做一个 if 函数来检查 sheet2 中是否有类似类型的数据,然后再输入数据。如果没有,则会显示一条消息,例如“数据库中没有这样的人”。我还想指定列以检查 sheet2 中的相似性,例如 A2:A100 下面是脚本代码

function doGet(e){
var ss = SpreadsheetApp.openByUrl("google sheet url");
//Give your Sheet name here
var sheet = ss.getSheetByName("Sheet1");

return insert(e,sheet);

}

function doPost(e){
var ss = SpreadsheetApp.openByUrl("google sheet url");
//Give your Sheet name here
var sheet = ss.getSheetByName("Sheet1");

return insert(e,sheet);

}



function insert(e,sheet){

 // reciving scanned data from client i.e android app
 var scannedData = e.parameter.sdata;
 var d = new Date();
 var ctime= d.toLocaleString();

 sheet.appendRow([scannedData,ctime]);

 return ContentService
.createTextOutput("Success")
.setMimeType(ContentService.MimeType.JAVASCRIPT);  


}

谢谢。

【问题讨论】:

标签: javascript if-statement google-apps-script google-sheets


【解决方案1】:

Google Apps 脚本本质上是带有不同库的 JavaScript。所以你的if 声明本质上和那里一样:

if (a1 == a2) {
  a1 = 0
}
else if (a1 != a3) {
  a1 = 1
}
else {
  a1 = 'String'
}

检查逻辑运算符以查找如果您不熟悉它可以做什么,并阅读switch 语句,因为它有时也可以代替if 语句(不是您的情况,但也可以)在您讨论该主题时阅读它)。

编辑:

根据您的评论,要比较来自特定列的数据非常简单,并且有多种方法可以做到这一点。把它想象成一个结构Spreadsheet → Sheet → Range → Value。因此,如果您已经拥有sheet 的对象,您可以执行range = sheet1.getRange(1,1),这将为您提供单元格A1。或者,您可以将 A1 表示法用于 getRange('A1')。如果您的范围是单个单元格,您可以执行range.getValue(),这将返回单元格内的值。

现在您想查找数据是否存在于另一个工作表中,1 比 1 不会有效,因为 getValue() 会很快使脚本膨胀。相反,您可能想做vals = sheet2.getDataRange().getValues()。这将返回工作表内所有值的二维数组。如果您只想检查特定列并且您知道您不关心其余列,您可以将getDataRange() 替换为.getRange(C:C) 之类的内容,或者同样是getRange(1, 3, sheet2.getLastRow(), 1)

然后您将简单地使用vals[rowNum][colNum] 循环遍历二维数组。

如果手动将值添加到 1 个单元格,并且脚本使用 onEdit 触发器触发,您还可以直接从事件对象 e 中获取值,该值位于 onEdit(e) 中。

阅读getRange()(也请阅读下面的内容)以及getValue()(以及下面的getValues)。谷歌有优秀的文档,只要按照你想要实现的逻辑结构就可以了。

【讨论】:

  • 问题在于使用来自不同谷歌表格中特定列的数据。我熟悉 switch 语句,只是比较来自不同工作表的数据
  • @Tazza 编辑了答案,希望能解释你在寻找什么,尽管这更超出了 StackOverflow 的范围。我们的想法是,您应该事先进行研究,并告诉我们您已经尝试过的方法中哪些方法不起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-03
  • 1970-01-01
  • 2023-03-07
  • 1970-01-01
相关资源
最近更新 更多