Google 表单回复导出到 XML 文件

问题描述 投票:0回答:1

全部。我尝试将 Google 表单导出为 XML 文件,如这篇旧文章中所述:将 Google 表单响应映射或导出到 PDF 表单字段

我按照步骤操作,但脚本不断出错。我希望有实际脚本经验的人可以帮助我修复它。我将按照链接堆栈中的概述发布我的代码。

formXml.html

<fields xmlns:xfdf="http://ns.adobe.com/xfdf-transition/">
<TMR><? dataTMR ?></TMR>
<Date><? dataDate ?></Date>
<Time><? dataTime ?></Time>
</fields>

代码.gs

function formSubmission(eventData) {
// Get a handle on the xml template
var formXml = HtmlService.createTemplateFromFile('formXml');

// Replace template values with user input
formXml.dataTMR = eventData.namedValues['TMR'];
formXml.dataDate = eventData.namedValues['Date'];
formXml.dataTime = eventData.namedValues['Time'];

// Evaluate the template with substitutions
var xml = formXml.evaluate();

// Get the evaluated template as text, prepend the XML Declaration
var formXmlText = '<?xml version="1.0" encoding="UTF-8"?>' + xml.getContent();

// Save user input as XML file on Google Drive
var fileName = 'Form ' + eventData.namedValues['Timestamp'];
var xmlFile = DriveApp.createFile(fileName, formXmlText, MimeType.XML);
}

这是执行日志:

enter image description here

如果我能得到任何帮助,我将不胜感激。

我已经尽可能地复制了这些步骤,而没有任何真正的脚本背景。

google-sheets google-apps-script google-forms
1个回答
0
投票

尝试改变这些:

formXml.dataTMR = eventData.namedValues['TMR'];
formXml.dataDate = eventData.namedValues['Date'];
formXml.dataTime = eventData.namedValues['Time'];

对此:

formXml.dataTMR = eventData.namedValues['TMR'][0];
formXml.dataDate = eventData.namedValues['Date'][0];
formXml.dataTime = eventData.namedValues['Time'][0];
© www.soinside.com 2019 - 2024. All rights reserved.