【发布时间】:2020-11-07 20:22:02
【问题描述】:
主要目标:
- 拥有一个 QR 码库存系统,扫描后会定向到 带有查询字符串的 Google Web App 网址
- 此 Web 应用在电子表格中搜索查询字符串参数并重定向到与参数匹配的单元格
请注意,我不能简单地使用链接到单元格的 URL。当物品出售时,行可能会被删除。如果二维码指向 A3 并且 A2 中的商品出售,那么 A3 中的商品将变为 A2。
我的问题是我无法让网络应用重定向到电子表格。
这是我的sheet,这是我用于网络应用的代码
function getCell(item, url){
var sheet = SpreadsheetApp.openByUrl(url).getSheetByName("Sheet1");
var lastRow = sheet.getLastRow();
var range = sheet.getRange('A1:A' + lastRow).getValues();
for(var i = 0; i < lastRow; i++){
if(range[i] == item){
return 'B' + (i + 1);
}
}
}
function doGet(e){
var sheetUrl = "https://docs.google.com/spreadsheets/d/1K6xva3BRzxTAchXi1iseU0MiYCM4luN4edXCgmEv8MU/edit#gid=0";
var cell = getCell(e.parameter.item, sheetUrl);
return HtmlService.createHtmlOutput('<script>window.location.replace("' + sheetUrl + '&range=' + cell + '"</script>');
}
我正在尝试这个 URL https://script.google.com/macros/s/AKfycbwdIZ8xbtf9iBHvNehcbJiYUE1E1gvDR7dyjPRM2CCGH1q_IwQ/exec?item=Dumbell_4
而且它不会让我通过网络应用程序页面。
【问题讨论】:
-
我认为您必须让用户使用 WebApp 打开电子表格,然后有一个功能将您带到这样的地方:
SpreadsheetApp.openByUrl(url).getRange('SheetName'+ '!' + Range.getA1Notation()).activate();当 web 应用程序打开电子表格时,用户界面没有打开。它只在服务器上打开,即没有用户。 -
在这种情况下,您还不如使用对话框。
-
该过程将在手机上进行,我认为表格应用不会受到 Safari 的影响。您是否知道根据@dwmorrin 的回答在 Web 应用程序页面上简单地显示链接的方法?类似
https://docs.google.com/spreadsheets/d/1K6xva3BRzxTAchXi1iseU0MiYCM4luN4edXCgmEv8MU/edit#gid=0&range=A4 -
我应该把
window.top.location = url放在哪里?
标签: google-apps-script google-sheets