将活动工作表作为电子邮件附件从 Google 工作表发送

2024-05-10

我有一个谷歌表单,可以捕获电子表格中的响应。目前,每次做出新响应时,它都会创建一个新工作表。

我现在尝试将“邮寄活动工作表脚本”添加到创建新工作表的现有脚本中。

但是我收到错误“请求失败https://docs.google.com/spreadsheets/d/SS_ID/export https://docs.google.com/spreadsheets/d/SS_ID/export?”围绕以下内容

var result = UrlFetchApp.fetch(url, {
      headers: {
        'Authorization': 'Bearer ' +  token
      }
    });

我已将这篇文章用作guide https://productforums.google.com/forum/#!topic/docs/kh5mJJdb_x8对于发送电子邮件部分。

这是我正在使用的整个脚本。

    function onSubmit(e){
  Logger.log('submit ran');

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();

  //Get last row of data
  var lastRow = sheet.getLastRow();
  var colB_Data = sheet.getRange(lastRow, 2).getValue();

  //create sheet name with order no.
  ss.insertSheet(colB_Data);

  //order formula
  var sheets = ss.getSheets()[1];

  var cell = sheets.getRange("b2");
  cell.setFormula("=TRANSPOSE('Form Responses 1'!B1:AR1)");

  var cell = sheets.getRange("c2");
  cell.setFormula("=sheetName()");

  var cell = sheets.getRange("c3");
  cell.setFormula("=transpose(FILTER('Form Responses 1'!C:AR,'Form Responses 1'!B:B=C2))");

  var cell = sheets.getRange("d5:d44");
  cell.setFormula("=C5*vlookup(B5,'RG Cost'!B:E,4,0)");

  var cell = sheets.getRange("d5:d44");
  cell.setNumberFormat("[$₹][>9999999]##\,##\,##\,##0;[$₹][>99999]##\,##\,##0;[$₹]##,##0")

  var cell = sheets.getRange("c47");
  cell.setFormula("=sum(C5:C44)");

  var cell = sheets.getRange("d47");
  cell.setFormula("=sum(D5:D44)");

  var cell = sheets.getRange("b47");
  cell.setValue('TOTAL');


  //Send active sheet as email attachment

  var ssID = SpreadsheetApp.getActiveSpreadsheet();
  var email = Session.getUser().getEmail();
  var subject = "Order no.";
  var body = "Hello";

  var token = ScriptApp.getOAuthToken();


  var url = "https://docs.google.com/spreadsheets/d/SS_ID/export?" + "format=xlsx" +  "&gid=" + "&portrait=true" + "&exportFormat=xlsx";

  var result = UrlFetchApp.fetch(url, {
      headers: {
        'Authorization': 'Bearer ' +  token
      }
    });


  var contents = result.getContent();

  MailApp.sendEmail("[email protected] /cdn-cgi/l/email-protection",subject ,body, {attachments:[{fileName:colB_Data+".pdf", content:contents, mimeType:"application//pdf"}]}); 

};

正如 @cooper 之前提到的,ssID 没有正确添加到 URL,并且 url 和 fetchapp 还需要进行一些更改

  //Send active sheet as email attachment

  var ssID = SpreadsheetApp.getActiveSpreadsheet().getId();
  var sheetgId = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getSheetId();
  var email = Session.getUser().getEmail();
  var subject = "Order no.";
  var body = "Hello";


  var url = "https://docs.google.com/spreadsheets/d/"+ssID+"/export?" + "format=xlsx" +  "&gid="+sheetgId+ "&portrait=true" + "&exportFormat=pdf";


  var result = UrlFetchApp.fetch(url)

  var contents = result.getContent();

  MailApp.sendEmail("[email protected] /cdn-cgi/l/email-protection",subject ,body, {attachments:[{fileName:colB_Data+".pdf", content:contents, mimeType:"application//pdf"}]});

您将 HTTP GET 直接发送到同一驱动器,因此我假设用户已登录到 Google 帐户并有权访问电子表格,因此您实际上不再需要令牌。 其次,您忘记将变量添加到导出模式 URL 中的参数中,我将导出格式更改为 pdf。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将活动工作表作为电子邮件附件从 Google 工作表发送 的相关文章

  • 阻止用户在共享的 Google 电子表格中创建新工作表

    我创建了一个电子表格 其中除单个单元格之外的所有工作表都受到保护 无法编辑 用户应该在其中输入搜索值 该搜索值会过滤工作表 我共享了启用编辑功能的电子表格 以实现这一点 但这也使用户能够创建新工作表 这是我想阻止的 也许我没有使用最佳的方式
  • 在 Google Sheet 中打印每个 ID 的多个数据

    In this 电子表格 https docs google com spreadsheets d 1vHHLrLdQBRgTliO ZFmTUSTdkkWla8Lf982lG0MwJ0M edit usp sharing 我有一张名为表格
  • QUnit 删除依赖项上的方法会破坏针对该依赖项的测试

    在 Google Apps 脚本中 我正在对我正在开发的应用程序进行单元测试 使用 QUnit https github com simula innovation qunit tree gas gas 使用测试驱动开发 正在测试的代码 我
  • Google Sheets 导出为 Excel 值而不是公式

    我有一个谷歌工作表 其中第一个选项卡中的单元格从第二个选项卡上的单元格中提取数据 例如 Sheet1 单元格 A1 有 Sheet2 A1 对于 Sheet1 上的每个单元格都是如此 当我创建文件时 下载为 Microsoft Excel
  • getActiveRange 不返回当前选择

    这应该是一个简单的问题 但我自己无法破解 我想将活动工作表中当前选定的单元格复制到名为 data 的数组中 var sheet SpreadsheetApp getActive getActiveSheet var selection sh
  • 如何在公式中的 & 之间添加换行符以生成 QR URL

    我正在谷歌表格中创建一个电子表格 用于跟踪财产房间的库存 我使用二维码作为标签 将其放置在房产上 并将与该特定房产的相关信息相关联 我正在使用以下代码 image https chart googleapis com chart chs 2
  • Google 脚本过滤一个值的范围

    我想过滤第 1 列中仅包含 Bob 特定值的行的 google 工作表范围 到目前为止 我的代码允许我过滤out第 1 列中有 Bob 的行 我需要相反 我想返回第 1 列中只有 Bob 的行 因此 其中 filterSettings 不是
  • 在 Google Apps 脚本中创建插件

    我已经整理了一些我想在其他 Google 工作表中访问的代码 但是 由于它使用 SpreadsheetApp getUi 因此代码必须绑定到工作表 因此 我决定创建代码作为附加组件 不幸的是 除非我打开应用程序脚本页面 否则附加组件不会出现
  • 使用 Google App Script 从一个电子表格跳转到另一个电子表格

    我有一个脚本 仅当我位于运行代码的当前工作表中时才有效 在 A1 中 我有一个复选框 其作用是刷新 api 请求 因此 我下面的代码单击复选框并获取新数据 所以我的代码的目的基本上是单击 A1 中的复选框 但是 运行此代码只会激活复选框 但
  • Google 表格 - 开始日期和结束日期列表之间的日期列表

    我想列出开始日期和结束日期列表之间的所有日期 我已经对每一行日期使用了序列公式 但我正在寻找一个单独的公式来工作 无论我有多少行 非常感谢任何帮助 我在单元格 E2 中输入了这个公式 sort query sequence max A2 B
  • 类型错误:ss.getSheetByName 不是函数

    我的代码旨在从用户输入表单中获取数据并将新行插入到电子表格中 function addNewRow rowData const currentDate new Date const ss SpreadsheetApp getActiveSh
  • 如何从 Google 电子表格中删除项目?

    我通过在脚本编辑器上选择 文件 gt 制作副本 错误地制作了 Google Apps 脚本项目的副本 从那时起 每次我在该项目所属的电子表格屏幕上单击 工具 gt 脚本编辑器 时 我看到显示两个项目 原始项目和复制项目 的屏幕 我需要选择一
  • 使用 Gmail Apps 脚本以 HTML 和普通格式发送电子邮件

    我正在使用 Google Apps 脚本为 Gmail 编写一个自动回复机器人 http script google com http script google com 每次我使用GmailThread s Reply https dev
  • 许多文档引用了一个 Google Apps 脚本 [重复]

    这个问题在这里已经有答案了 我已经通过驻留在 Google 文档中的 Google Apps 脚本创建了一个脚本 我使用该文档作为模板对象 然后将其复制到我使用这些脚本函数的许多 Google 文档中 问题是 每当我编辑该主脚本时 所有子文
  • 如果您有多个表单向单个电子表格发送响应,Google 如何知道提交表单时要执行哪个 onsubmit 触发器

    我需要有人澄清 据我了解 多个表单可以将其回复发送到新 Google 表格中的单个电子表格 因此 我创建了两个 Google 表单 并让他们都将回复发送到新的 Google 电子表格 然后我在电子表格 而不是表单 中创建了两个脚本 每个脚本
  • 清除内容并从另一张纸复制

    我编写了一个脚本 旨在清除 Google Sheets 电子表格的内容并复制并粘贴另一个工作表的内容 需要清除的工作表称为 NEW SHEET 要复制的工作表称为 Database 由于某种原因 该脚本目前无法运行 当我运行它时什么也没有发
  • 复制带有内嵌图像的表格

    我正在尝试将 GDoc 的内容复制到另一个 GDoc 中 这对于所有不同的元素类型都非常有效 包括一个表 枚举DocumentApp ElementType TABLE 但是 如果表包含内联图像 EnumDocumentApp Elemen
  • 如何使用 google Sheet 作为数据库

    如何在 HTML Web 应用程序中生成 Google 工作表数据 并允许用户从 HTML Web 应用程序更新评论 我在谷歌表中有一些数据 通过谷歌表单提交 我想使用搜索按钮根据 请求编号 从网络应用程序搜索工作表数据 应该能够更新网络应
  • 通过 Google Apps 脚本发送电子邮件时出现问题

    我有时已经成功地通过 Google Apps 脚本发送电子邮件 但是 当我打开一个新的 Google Workspace 帐户并使用相同的代码将相同的内容发送到同一个接收者时 新帐户不起作用 我收到一条 消息已被阻止 的消息 电子邮件受保护
  • 如何删除 GMail 标签 - Google Apps 脚本

    我想从放回收件箱的每封邮件中删除 后续 标签 我尝试了几件事 但仍然没有成功 我希望有人可以帮助我或为我指明正确的方向 涉及的函数是 function moveToInbox page GmailApp moveThreadsToInbox

随机推荐

  • 将对象映射到 TableView 部分的 Swift 二维数组

    我想不出更好的方法来做到这一点 我将学生对象的所有属性映射到二维数组中 所以我的电视有几个部分 我也不能使用静态表视图 如果是这样 这个问题就不会存在 所以我在 TVC 中的代码 let currentUser PFUser current
  • Escape String - 在 Javascript 中输出rails字符串[重复]

    这个问题在这里已经有答案了 我正在尝试将字符串值分配给 erb 文件中的 javascript 对象 如下所示 var data name 问题是 如果name is Tom s small ears 的输出data name将会Tom x
  • 如何自动更新Android Studio?

    我需要将 Android Studio 更新到 0 9 9 版本 但是当我按 下载 在更新信息对话框上 时 它会将我发送到此处 http developer android com sdk index html http developer
  • ActionBar 中的进度条

    我正在使用一个应用程序 它将在应用程序内部加载一个网站 现在我想在操作栏中添加一个进度栏 而无需向上滑动来抑制功能 像那样 我在用Fragment在我的应用程序中 WebviewFragment public class WebviewFr
  • 在 python 查询参数中使用 %20 而不是 + 作为空格

    我使用 python requests 编写了以下 python 脚本 http requests readthedocs org en latest http requests readthedocs org en latest impo
  • SpaCy 中的自定义句子边界检测

    我正在尝试在 spaCy 中编写一个自定义句子分段器 它将整个文档作为单个句子返回 我编写了一个自定义管道组件 它使用以下代码来执行此操作here https github com explosion spaCy issues 1850 但
  • LSTM 批次与时间步

    我按照 TensorFlow RNN 教程创建了 LSTM 模型 然而 在这个过程中 我对 批次 和 时间步长 之间的差异 如果有的话 感到困惑 并且我希望得到帮助来澄清这个问题 教程代码 见下文 本质上是根据指定数量的步骤创建 批次 wi
  • Python列表对象属性“append”是只读的

    正如标题所说 在Python中 我试图做到这一点 以便当有人输入一个选择 在本例中为Choice13 时 它会从密码列表中删除旧密码并添加新密码 passwords mrjoebblock mrjoefblock mrjoegblock m
  • html 下钻下拉所选值未插入 MYSQL

    我有两个下拉列表 首先从数据库下拉填充 根据第一个下拉列表的选定值从数据库填充第二个下拉列表 document ready function c change function var c1 c selected text if c1 aj
  • Java的hashCode可以为不同的字符串产生相同的值吗?

    使用java的哈希码函数是否可以为不同的字符串提供相同的哈希码 或者如果可能的话 其可能性的 是多少 Java 哈希码是 32 位 它散列的可能字符串的数量是无限的 所以是的 会发生冲突 百分比是没有意义的 项目 字符串 的数量是无限的 而
  • 用于将 MS Word 表导出到 Excel 工作表的宏

    我有一个包含许多表格的word文档 有谁知道如何编写宏将此类表导出到不同的 Excel 工作表 答案摘自 http www mrexcel com forum showthread php t 36875 http www mrexcel
  • 如何更改焦点/按下时图像按钮的色调

    我有一个ImageButton在我的应用程序中 当按钮打开时我需要更改图像的色调pressed focused 我有ImageButton设置为获取其src来自 XML 文件 如下所示
  • 什么样的函数被认为是“可组合的”?

    维基百科文章函数组合 计算机科学 https en wikipedia org wiki Function composition computer science says 就像数学中通常的函数组合一样 每个函数的结果作为下一个函数的参数
  • 在 boost 元组、zip_iterator 等上使用 std::get 和 std::tie

    我有哪些使用选择std get lt gt and std tie lt gt 与增强结构一起 例子 我想使用基于范围的 for 循环在多个容器上进行迭代 我可以实施zip函数 它使用boost zip iterator include
  • 从 cin 读取整数序列并将它们存储在向量中

    这就是我读取整数的方法std cin并将它们存储在向量中 int number vector
  • Express js 错误:“express 已弃用 res.sendfile:请改用 res.sendFile”

    设置路径的正确方法是什么 在我的应用程序中 我使用此代码设置发送文件的路径 app get function req res get put post delete res sendfile dirname client views ind
  • 张量流急切模块错误

    我的操作系统是 Ubuntu 16 04 Python版本是3 5 张量流版本是14 0 当我尝试为 TF Eager 模块编写简单代码时 import tensorflow as tf import tensorflow contrib
  • 我应该害怕使用 UDP 进行客户端/服务器广播通话吗?

    我在过去的两天里阅读了每一篇StackOverflow问题和答案 以及googling当然 关于印地TCP and UDP协议 以便决定在我的用户应用程序和 Windows 服务之间的通信方法中应该使用哪一种 从我目前所看到的来看 UDP是
  • 为什么 [].push([]) 返回 1? [复制]

    这个问题在这里已经有答案了 为什么这会返回 1 push outputs 1 push 返回数组的新长度 one push two returns 2 array length is 2 one two push something ret
  • 将活动工作表作为电子邮件附件从 Google 工作表发送

    我有一个谷歌表单 可以捕获电子表格中的响应 目前 每次做出新响应时 它都会创建一个新工作表 我现在尝试将 邮寄活动工作表脚本 添加到创建新工作表的现有脚本中 但是我收到错误 请求失败https docs google com spreads