我想我遇到了一个错误?我在google工作表中有一个脚本,它会获得提交的Google表单值并将它们放入google doc表中。
我已将我的代码迁移到Google表单,在提交后,它似乎无法获取我输入的数据。
Map<String,String> variableReplaceMap = new HashMap<>();
Map<String, String> textContent = readTextContentAfterDBExtractionToFillUpTemplate();
ObjectFactory factory = Context.getWmlObjectFactory();
P para = factory.createP();
R rspc = factory.createR();
String power= textContent.get("Power & Energy");
String[] powerWithNewLine = skills.split("\\\\n");
for (String eachLineOfPower : powerWithNewLine) {
Text eachLineOfPowerTxt = factory.createText();
eachLineOfPowerTxt .setValue( eachLineOfPower );
rspc.getContent().add( eachLineOfPowerTxt );
Br br = factory.createBr();
rspc.getContent().add(br);
para.getParagraphContent().add(rspc);
documentPart.addObject(para);
}
String str = "";
for (Object eachLineOfPgrph : para.getParagraphContent()) {
str = str + eachLineOfPgrph;
}
variableReplaceMap.put("POWER", str);
return variableReplaceMap;
作为调试过程的一部分,我发现这是错误,这要归功于以下代码:
function doTheWork(e) {
var timeStamp = String(e.values[0]);
var entryEmail = String(e.values[1]);
var name = String(e.values[2]);
var number = String(e.values[3]);
var cells = [timeStamp, entryEmail, name, number];
};
基本上,手动添加字符串有效。但我需要它从表格中获取数据。
答案 0 :(得分:0)
我正在回答这些问题,因为虽然上面评论中的链接让我走上正轨,但我确实花了一些时间来理解文档的含义。
以下是解决方案:
// Get the for - You could alternatively open by id.
var form = FormApp.getActiveForm();
// Get responses
var formResponses = form.getResponses();
// Loop through the filled out form to gather all of the responses
for (var i = 0; i < formResponses.length; i++) {
// Prepare the array
var formResponse = formResponses[i];
// Just FYI I got the response URL because it was handy for my situation. It is not necessary code but I if anyone else gets stuck the way I did, hopefully this helps
var editUrl = String(formResponse.getEditResponseUrl());
var itemResponses = formResponse.getItemResponses();
// My form had two fields for this test. Name & Number. Here is how I was able to access the answers.
var name = itemResponses[0].getResponse();
var number = itemResponses[1].getResponse();
}