标签: google-forms

设置脚本以在电子邮件通知中包含Google文档表单数据

我使用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)

有人能帮我解决这个问题吗?我猜我不会包含一些必要的数据,但老实说我没有任何线索.

email google-docs google-apps-script google-forms

8
推荐指数
1
解决办法
2万
查看次数

使用Apps脚本动态编辑实时Google表单中的多个选项

我是洛杉矶的一名高中老师,试图使用Apps Script创建一个课程注册系统.我需要我用于此注册的Google表单:

问题1)根据学生当前的答案选择,在新页面上更新后续多项选择题中可用的选项.

问题2)当多项选项达到"上限"时,从表格中消除选择.

问题1示例)学生在研讨会1中注册"绑定",并进入新页面.脚本根据学生的第一选择编辑该新页面上的可用选项,并从该新页面上的可能选项列表中删除"绑定",因此"礼仪"是他们唯一剩下的选项.

问题2示例)学生可以注册"绑定"或"礼仪",这两个回复最初都在Google表格中提供.30名学生参加了调查,所有30名学生都参加了"打结"研讨会.应用程序脚本引用响应电子表格,意识到"绑定"工作坊已满,然后将其从Google表单的可能选项列表中删除.学生31去登记,他们唯一的选择是"礼仪".

如果我的问题已被问及并回答(相信我,我确实搜索了!)我很欣赏重定向.

google-apps-script google-forms

8
推荐指数
1
解决办法
3万
查看次数

Google应用脚本触发器无效

我有一个发送电子邮件的谷歌应用程序脚本,我设置了一个触发器,以便它在每个表单提交时发送电子邮件.问题是触发器在最初的几分钟内完全正常,但后来甚至在输入正确的数据之后.脚本不发送邮件,我必须手动按下脚本的执行按钮.这是我的代码

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

8
推荐指数
3
解决办法
2万
查看次数

有没有办法编辑新的谷歌表格的CSS?

之前我以前只能复制表单的源代码并将部分粘贴<form></form>到页面中并添加我自己的样式.但这似乎不再起作用了.有没有人找到一种方法仍然可以自定义谷歌表格?

css google-forms

8
推荐指数
2
解决办法
2万
查看次数

如何从Google表单中提取响应项

我已经制作了一个表格来捕获2个数据.

  1. 电子邮件地址.
  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)

google-sheets google-apps-script google-forms

7
推荐指数
1
解决办法
2万
查看次数

如何为谷歌表单输入分配唯一 ID?

谷歌表单 - 我已经设置了一个谷歌表单,我想为每个完成的传入表单输入分配一个唯一的 id。我的目的是使用唯一 ID 作为我创建的另一个谷歌表单的输入,我将用它来链接两个完整的表单。有没有另一种更简单的方法来做到这一点?

我不是程序员,但如果需要,我可以使用编程资源。

google-sheets google-forms

7
推荐指数
1
解决办法
6万
查看次数

如何在 Google 表单中自动填写受访者的电子邮件地址?

因此,我希望当我通过 Google 表单发送电子邮件时(现在可以将整个表单自动嵌入到消息中 - 我通常这样做),收件人的电子邮件已经填写在相应的字段中。如果受访者希望使用不同的地址来接收确认电子邮件,他们仍然可以更改它。

如果有多个收件人,显然每个收件人都应该自动填写自己的电子邮件地址。

视觉上(作为一个新手,我还没有直接嵌入图像的声誉):

应根据表单发送到的电子邮件地址自动填写图像中突出显示的部分。

我确信这应该通过脚本来完成,但我还不够擅长编写脚本。我发现了这个,但这并不完全有效,主要是因为我不想使用预定义的联系人列表。

我说得够清楚了吗?:) 这是我的第一个问题,我希望我能达到预期的效果。

email autofill google-apps-script google-forms

7
推荐指数
1
解决办法
1万
查看次数


如何让用户无需登录即可使用Google Form上传文件?

在哪里可以找到有关如何允许用户无需登录即可使用 Google 表单上传文件的代码和说明?

我在这里找遍了,没有找到任何信息。 https://developers.google.com/apps-script/reference

提前致谢。

forms upload google-apps-script google-forms

7
推荐指数
1
解决办法
3万
查看次数

如何查找 Google 表单 ID

更新!表单 ID 位于网址中。

有人好心地向我指出(在 Stack Overflow 之外)可以在网址中找到标识表单的表单 ID。例子:

https://docs.google.com/forms/d/1y9XMjvZi_wlFC2FN64cdafIyGuM_7UOsn1Q61PXv5MQ/edit

其中粗体文本是表单 ID。

原来的:

提前道歉,因为我不是经验丰富的剧本作家,可能会使用不正确的术语。

但是 - 我在谷歌搜索如何在 Google 表单中查找表单 ID 元素时找到了 这个问题的答案 ,但答案很旧,我的问题也很相似。我尝试搜索“Inspect Element”数据,但仍然无法识别 ID 属性。我尝试搜索代码:

  • 数据项-id =“##########”,或
  • aria-描述的=“i.desc.########## i3”
  • 为=“entry_XXXXXXX”

还是没有运气。有人对查找表单 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)

html web-scraping google-apps-script google-forms

7
推荐指数
2
解决办法
3万
查看次数