我正在尝试创建一个脚本,该脚本将记录学生姓名,作业和状态(签出,签到,返回给学生),以便为预填充的Google表单创建URL。数据看起来像这样
A1 B1 C1
Student name Assignment Status
Kevin Test 1 Check-out
Bob Test 2 Check-in
Stan Returned
我想为每个状态的每个学生创建一个URL。说当我向表中添加一个赋值时,脚本会为每个状态吐出一个预填表单的URL。因此,如果我添加了测试3,那么我会预先填写(kevin,test 3,In)(Kevin,Test 3,Out)(Kevin,Test 3,返回)......等等,每个学生。
我最终希望将这些转换为预先填写的自动提交网址,该网址是QR代码的一部分。这样我就可以将QR码放在他们的作业上并在他们拿到时扫描它,在它返回时扫描另一个,然后在我将它返回给他们时扫描第三个。这样,只需扫描即可快速轻松地继续前进。我不知道从哪里开始。
一直在努力:
/* Use Form API to generate pre-filled form URLs
*/
function QRGenerater() {
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName("Sheet1");
var data = ss.getDataRange().getValues(); // Data for pre-fill
var formUrl = ss.getFormUrl(); // Use form attached to sheet
var form = FormApp.openByUrl("https://docs.google.com/formsd/15ssivqvdynjvrYxRApsWyLf10qSgrhM5VRyjqZdYxCQ/edit#");
var items = form.getItems();
// Skip headers, then build URLs for each row in Sheet1.
for (var i = 1; i < data.length; i++ ) {
// Create a form response object, and pre-fill it
var formResponse = form.createResponse();
// Prefill Name
var formItem = items[0].asListItem();
var response = formItem.createResponse(data[i][1]);
formResponse.withItemResponse(response);
// Prefill Assignment
var formItem = items[1].asListItem();
var response = formItem.createResponse(data[i][2]);
formResponse.withItemResponse(response);
// Prefill Status
var formItem = items[2].asListItem();
var response = formItem.createResponse(data[i][3]);
formResponse.withItemResponse(response);
// Get prefilled form URL
var url = formResponse.toPrefilledUrl();
Logger.log(url); // You could do something more useful here.
Logger = BetterLog.useSpreadsheet('0AkZFz57HfPamdDRhZDN0cDhSX3FQNXh3a2M0YnBXdUE');
}
};
但它并不能完全符合我的要求。只记录URL,它仅用于预填充链接。也不知道如何获得它生成的链接,最终在电子表格中。
答案 0 :(得分:0)
您使用的脚本看起来就像是由Mogsdad创建的脚本。
回答有关您可以使用的网址的最新问题
range = sheet.getRange(number, number)
var sheetwrite = sheet.setActiveRange(range)
sheetwrite.setValue(URL);
数字,数字对应于行/列。
使用QR码,您可以根据创建的唯一网址生成QR。