我使用googledocs设置了一个表单.我只想将输入表格的实际数据通过电子邮件发送给我,而不是通用回复表明表格已经完成.
我没有代码等方面的技能或经验,但我确信我可以对此进行排序.我花了几个小时+几个小时没有运气.
我的表格非常基本.它有5个字段.其中4个只是文本响应,还有一个多项选择.
我在网上找到了这个tute(http://www.labnol.org/internet/google-docs-email-form/20884/),我认为这总结了我正在尝试做的事情,但却未能得到它上班.
从这个网站我输入以下代码:
function sendFormByEmail(e)
{
var email = "reports.mckeir@gmail.com";
var subject = "Google Docs Form Submitted";
var s = SpreadsheetApp.getActiveSheet();
var headers = s.getRange(1,1,1,s.getLastColumn()).getValues()[0];
var message = "";
for(var i in headers)
message += headers[i] + ' = '+ e.namedValues[headers[i]].toString() + "\n\n";
MailApp.sendEmail(email, subject, message);
}
Run Code Online (Sandbox Code Playgroud)
对此,我得到以下回复: - >
您的脚本,联系我们Form Mailer,最近未能成功完成.故障摘要如下所示.要配置此脚本的触发器,或更改接收未来故障通知的设置,请单击此处.
该脚本由文档100%Club使用.
细节:
Start Function Error Message Trigger End
12/3/12 11:06 PM sendFormByEmail TypeError: Cannot call method "toString" of undefined. (line 12) formSubmit 12/3/12 11:06 PM
Run Code Online (Sandbox Code Playgroud)
有人能帮我解决这个问题吗?我猜我不会包含一些必要的数据,但老实说我没有任何线索.
我是洛杉矶的一名高中老师,试图使用Apps Script创建一个课程注册系统.我需要我用于此注册的Google表单:
问题1)根据学生当前的答案选择,在新页面上更新后续多项选择题中可用的选项.
问题2)当多项选项达到"上限"时,从表格中消除选择.
问题1示例)学生在研讨会1中注册"绑定",并进入新页面.脚本根据学生的第一选择编辑该新页面上的可用选项,并从该新页面上的可能选项列表中删除"绑定",因此"礼仪"是他们唯一剩下的选项.
问题2示例)学生可以注册"绑定"或"礼仪",这两个回复最初都在Google表格中提供.30名学生参加了调查,所有30名学生都参加了"打结"研讨会.应用程序脚本引用响应电子表格,意识到"绑定"工作坊已满,然后将其从Google表单的可能选项列表中删除.学生31去登记,他们唯一的选择是"礼仪".
如果我的问题已被问及并回答(相信我,我确实搜索了!)我很欣赏重定向.
我有一个发送电子邮件的谷歌应用程序脚本,我设置了一个触发器,以便它在每个表单提交时发送电子邮件.问题是触发器在最初的几分钟内完全正常,但后来甚至在输入正确的数据之后.脚本不发送邮件,我必须手动按下脚本的执行按钮.这是我的代码
var EMAIL_SENT = "EMAIL_SENT";
function sendEmailsapp() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First row of data to process
var numRows = sheet.getLastRow(); // Number of rows to process
// Fetch the range of cells A2:B3
var dataRange = sheet.getRange(startRow, 1, numRows,8)
// Fetch values for each row in the Range.
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var emailAddress = row[4]; // First column …Run Code Online (Sandbox Code Playgroud) triggers eventtrigger google-sheets google-apps-script google-forms
之前我以前只能复制表单的源代码并将部分粘贴<form></form>到页面中并添加我自己的样式.但这似乎不再起作用了.有没有人找到一种方法仍然可以自定义谷歌表格?
我已经制作了一个表格来捕获2个数据.
每个组都有自己的电子表格.[根据发布的代码,每个都有自己的片材相同的内电子表格.]
当用户提交表单时,表单应捕获电子邮件地址,并将数据发送到用户订阅的相应电子表格.
这就是我到目前为止所做的.我被困了..
有没有办法专门从特定的文本框/选项..etc中检索数据?
我知道的唯一方法是循环所有数据并逐个检索它...这使我很难将2个数据链接在一起......例如: "johndoh@email.com" subscribed to "Group 1"
function onFormSubmit() {
var form = FormApp.getActiveForm();
var formResponses = form.getResponses();
for (var i = 0; i < formResponses.length; i++) {
var formResponse = formResponses[i];
var itemResponses = formResponse.getItemResponses();
for (var j = 0; j < itemResponses.length; j++) {
var itemResponse = itemResponses[j];
// Checks if it is multiple choice option
if (itemResponse.getItem().getType() == FormApp.ItemType.MULTIPLE_CHOICE) {
// If user chooses group 1, open …Run Code Online (Sandbox Code Playgroud) 谷歌表单 - 我已经设置了一个谷歌表单,我想为每个完成的传入表单输入分配一个唯一的 id。我的目的是使用唯一 ID 作为我创建的另一个谷歌表单的输入,我将用它来链接两个完整的表单。有没有另一种更简单的方法来做到这一点?
我不是程序员,但如果需要,我可以使用编程资源。
因此,我希望当我通过 Google 表单发送电子邮件时(现在可以将整个表单自动嵌入到消息中 - 我通常这样做),收件人的电子邮件已经填写在相应的字段中。如果受访者希望使用不同的地址来接收确认电子邮件,他们仍然可以更改它。
如果有多个收件人,显然每个收件人都应该自动填写自己的电子邮件地址。
视觉上(作为一个新手,我还没有直接嵌入图像的声誉):
应根据表单发送到的电子邮件地址自动填写图像中突出显示的部分。
我确信这应该通过脚本来完成,但我还不够擅长编写脚本。我发现了这个,但这并不完全有效,主要是因为我不想使用预定义的联系人列表。
我说得够清楚了吗?:) 这是我的第一个问题,我希望我能达到预期的效果。
我创建了这个表格:
https://docs.google.com/forms/d/e/1FAIpQLSepL1NX2ZVNFBDtbvFZqWrHlXVRUznljb6GkJBv2XJ5XCTBpg/viewform
有没有办法强制对齐 RTL 无论如何?
在哪里可以找到有关如何允许用户无需登录即可使用 Google 表单上传文件的代码和说明?
我在这里找遍了,没有找到任何信息。 https://developers.google.com/apps-script/reference
提前致谢。
有人好心地向我指出(在 Stack Overflow 之外)可以在网址中找到标识表单的表单 ID。例子:
https://docs.google.com/forms/d/1y9XMjvZi_wlFC2FN64cdafIyGuM_7UOsn1Q61PXv5MQ/edit
其中粗体文本是表单 ID。
提前道歉,因为我不是经验丰富的剧本作家,可能会使用不正确的术语。
但是 - 我在谷歌搜索如何在 Google 表单中查找表单 ID 元素时找到了 这个问题的答案 ,但答案很旧,我的问题也很相似。我尝试搜索“Inspect Element”数据,但仍然无法识别 ID 属性。我尝试搜索代码:
还是没有运气。有人对查找表单 ID 有更新的建议吗?作为参考,我使用下面的脚本作为起点。这是取自不同/旧的形式,但功能相似,所以我希望利用它。我正在尝试查找我的表单 ID(例如第 6-7 行中的 ID)。
/**
* @NotOnlyCurrentDoc
* Limit OAuth scope to only current spreadsheet rather than all sheets in drive
*/
function onSubmit(e) {
var form = FormApp.openById('1eccBQ7Bs34Z54keGHeR8HDXmiP1UqxMi9vSDWNv6zgs');
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Master');
var data = sheet.getDataRange().getValues();
//var urlCol = 26;
var responses = …Run Code Online (Sandbox Code Playgroud) google-forms ×10
email ×2
autofill ×1
css ×1
eventtrigger ×1
forms ×1
google-docs ×1
html ×1
triggers ×1
upload ×1
web-scraping ×1