如何扫描二维码将信息导入 Google 表格
How to scan a QR Code to Import the Info Into Google Forms
首先我想说我在 google 脚本方面的编码经验有限,但在 R 中有丰富的编码经验。我尝试过使用以前的 stackedoverflow 解决方案 (),但任何时候我编辑 URL,它都会说“抱歉,此时无法打开文件。”
我将 code.gs 下列出的代码复制到主脚本中并更改 'your-form-id-here' 以匹配我的 google sheet 的 ID,并添加了两个 HTML 'Success' 和 'Failure' 的代码,但没有用。
我有一个 google 表格,要求人们输入他们的唯一 ID 号。我不想让人们错误输入他们的电话号码,而是想对其进行设置,以便他们可以扫描 phone 上的二维码并让 Google 表格自动填充第一个要求的问题他们的身份证号码。他们需要回答 google 表格上的其他问题,但我只想自动填充第一个问题。
这是 Google 表格:https://docs.google.com/forms/d/e/1FAIpQLSdsP0e2FsC54QY0Nyrpipi21yC-8ODjO9aRlfOMq51vODRaew/viewform?usp=sf_link
我使用的表单 ID 是 1FAIpQLSdsP0e2FsC54QY0Nyrpipi21yC-8ODjO9aRlfOMq51vODRaew,我认为这是基于 Google 表单 URL.
的 ID
编辑:这是我当前的 Code.gs 脚本:
function doGet(e){
try {
var passNo = e.parameters.passNo;
var qNumber = e.parameters.qNumber;
var form = FormApp.openById('1FAIpQLSdsP0e2FsC54QY0Nyrpipi21yC-8ODjO9aRlfOMq51vODRaew');
var items = form.getItems();
// assuming question 1 is the pass number question
var q = items[qNumber[0] - 1].asTextItem();
var itemResponse = q.createResponse(passNo[0])
var FormResponse = form.createResponse();
FormResponse.withItemResponse(itemResponse);
FormResponse.submit();
return HtmlService.createHtmlOutputFromFile('Success')
}
catch(e){
return HtmlService.createHtmlOutputFromFile('Failure');
}
}
我还添加了 Success.html 和 Failure.html 代码,完全按照前面的示例编写:
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
Success
</body>
</html>
和
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
Failure
</body>
</html>
部署脚本后,我得到了 URL 并练习添加“passNo”和“qNumber”,就像他们在示例中所做的那样,将 ?passNo=21480&qNumber=1
添加到我的 URL,但 URL 导致页面错误:
问题与解决方案:
当我看到您当前的脚本时,我注意到在 ar form = FormApp.openById('1FAIpQLSdsP0e2FsC54QY0Nyrpipi21yC-8ODjO9aRlfOMq51vODRaew');
和 https://docs.google.com/forms/d/e/1FAIpQLSdsP0e2FsC54QY0Nyrpipi21yC-8ODjO9aRlfOMq51vODRaew/viewform?usp=sf_link
,您使用的是预览 URL 中的 ID。在这种情况下,该 ID 不是 Google 表单 ID。我认为这可能是您遇到问题的原因。
例如,当我使用正确的 Google 表单 ID 测试您的脚本时,没有发生错误。返回“成功”。所以请修改如下。
发件人:
var form = FormApp.openById('1FAIpQLSdsP0e2FsC54QY0Nyrpipi21yC-8ODjO9aRlfOMq51vODRaew');
收件人:
var form = FormApp.openById('### Google Form ID ###');
- 在这种情况下,请使用
https://docs.google.com/forms/d/###/edit
的 ###
。
注:
- 当您修改 Google Apps 脚本时,请将部署修改为新版本。这样,修改后的脚本就会反映在 Web Apps 中。请注意这一点。
- 您可以在“Redeploying Web Apps without Changing URL of Web Apps for new IDE”的报告中看到详细信息。
首先我想说我在 google 脚本方面的编码经验有限,但在 R 中有丰富的编码经验。我尝试过使用以前的 stackedoverflow 解决方案 (
我将 code.gs 下列出的代码复制到主脚本中并更改 'your-form-id-here' 以匹配我的 google sheet 的 ID,并添加了两个 HTML 'Success' 和 'Failure' 的代码,但没有用。
我有一个 google 表格,要求人们输入他们的唯一 ID 号。我不想让人们错误输入他们的电话号码,而是想对其进行设置,以便他们可以扫描 phone 上的二维码并让 Google 表格自动填充第一个要求的问题他们的身份证号码。他们需要回答 google 表格上的其他问题,但我只想自动填充第一个问题。
这是 Google 表格:https://docs.google.com/forms/d/e/1FAIpQLSdsP0e2FsC54QY0Nyrpipi21yC-8ODjO9aRlfOMq51vODRaew/viewform?usp=sf_link
我使用的表单 ID 是 1FAIpQLSdsP0e2FsC54QY0Nyrpipi21yC-8ODjO9aRlfOMq51vODRaew,我认为这是基于 Google 表单 URL.
的 ID编辑:这是我当前的 Code.gs 脚本:
function doGet(e){
try {
var passNo = e.parameters.passNo;
var qNumber = e.parameters.qNumber;
var form = FormApp.openById('1FAIpQLSdsP0e2FsC54QY0Nyrpipi21yC-8ODjO9aRlfOMq51vODRaew');
var items = form.getItems();
// assuming question 1 is the pass number question
var q = items[qNumber[0] - 1].asTextItem();
var itemResponse = q.createResponse(passNo[0])
var FormResponse = form.createResponse();
FormResponse.withItemResponse(itemResponse);
FormResponse.submit();
return HtmlService.createHtmlOutputFromFile('Success')
}
catch(e){
return HtmlService.createHtmlOutputFromFile('Failure');
}
}
我还添加了 Success.html 和 Failure.html 代码,完全按照前面的示例编写:
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
Success
</body>
</html>
和
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
Failure
</body>
</html>
部署脚本后,我得到了 URL 并练习添加“passNo”和“qNumber”,就像他们在示例中所做的那样,将 ?passNo=21480&qNumber=1
添加到我的 URL,但 URL 导致页面错误:
问题与解决方案:
当我看到您当前的脚本时,我注意到在 ar form = FormApp.openById('1FAIpQLSdsP0e2FsC54QY0Nyrpipi21yC-8ODjO9aRlfOMq51vODRaew');
和 https://docs.google.com/forms/d/e/1FAIpQLSdsP0e2FsC54QY0Nyrpipi21yC-8ODjO9aRlfOMq51vODRaew/viewform?usp=sf_link
,您使用的是预览 URL 中的 ID。在这种情况下,该 ID 不是 Google 表单 ID。我认为这可能是您遇到问题的原因。
例如,当我使用正确的 Google 表单 ID 测试您的脚本时,没有发生错误。返回“成功”。所以请修改如下。
发件人:
var form = FormApp.openById('1FAIpQLSdsP0e2FsC54QY0Nyrpipi21yC-8ODjO9aRlfOMq51vODRaew');
收件人:
var form = FormApp.openById('### Google Form ID ###');
- 在这种情况下,请使用
https://docs.google.com/forms/d/###/edit
的###
。
注:
- 当您修改 Google Apps 脚本时,请将部署修改为新版本。这样,修改后的脚本就会反映在 Web Apps 中。请注意这一点。
- 您可以在“Redeploying Web Apps without Changing URL of Web Apps for new IDE”的报告中看到详细信息。