将活动工作表以 PDF 形式发送到单元格中列出的电子邮件

2023-12-08

我正在尝试使用下面的脚本将 Google 表格文档中的第一张工作表以 PDF 形式发送到电子邮件。要发送到的电子邮件地址列在单元格 A1 中。

但是,此脚本将整个电子表格作为 PDF 发送,而不仅仅是第一个工作表。我一直在尝试使用 Stack Overflow 中的一些其他脚本,但这是唯一真正发送电子邮件的脚本。

        /* Email Google Spreadsheet as PDF */
function emailGoogleSpreadsheetAsPDF() {
  
  // Send the PDF of the spreadsheet to this email address
  var email = "[email protected]"; 
  
  // Get the currently active spreadsheet URL (link)
  var ss = SpreadsheetApp.getActiveSpreadsheet();

  // Subject of email message
  var subject = "PDF generated from spreadsheet " + ss.getName(); 

  // Email Body can  be HTML too 
  var body = "Install the <a href='http://www.labnol.org/email-sheet'>Email Spreadsheet add-on</a> for one-click conversion.";
  
  var blob = DriveApp.getFileById(ss.getId()).getAs("application/pdf");
  
  blob.setName(ss.getName() + ".pdf");
  
  // If allowed to send emails, send the email with the PDF attachment
  if (MailApp.getRemainingDailyQuota() > 0) 
    GmailApp.sendEmail(email, subject, body, {
      htmlBody: body,
      attachments:[blob]     
    });  
}

下面是一个工作版本,其中包含一些您可能想要使用的有用参数。

更新的代码

function sendSheetToPdfwithA1MailAdress(){ // this is the function to call
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = ss.getSheets()[0]; // it will send sheet 0 wich is the first sheet in the spreadsheet.
  // if you change the number, change it also in the parameters below
  var shName = sh.getName()
  sendSpreadsheetToPdf(0, shName, sh.getRange('A1').getValue(),"test email with the adress in cell A1 ", "This is it !");
}
function sendSpreadsheetToPdf(sheetNumber, pdfName, email,subject, htmlbody) {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var spreadsheetId = spreadsheet.getId()  
  var sheetId = sheetNumber ? spreadsheet.getSheets()[sheetNumber].getSheetId() : null;  
  var url_base = spreadsheet.getUrl().replace(/edit$/,'');

  var url_ext = 'export?exportFormat=pdf&format=pdf'   //export as pdf

      + (sheetId ? ('&gid=' + sheetId) : ('&id=' + spreadsheetId)) 
      // following parameters are optional...
      + '&size=A4'      // paper size
      + '&portrait=true'    // orientation, false for landscape
      + '&fitw=true'        // fit to width, false for actual size
      + '&sheetnames=true&printtitle=false&pagenumbers=true'  //hide optional headers and footers
      + '&gridlines=false'  // hide gridlines
      + '&fzr=false';       // do not repeat row headers (frozen rows) on each page

  var options = {
    headers: {
      'Authorization': 'Bearer ' +  ScriptApp.getOAuthToken(),
    }
  }

  var response = UrlFetchApp.fetch(url_base + url_ext, options);
  var blob = response.getBlob().setName(pdfName + '.pdf');
  if (email) {
    var mailOptions = {
      attachments:blob, htmlBody:htmlbody
    }
MailApp.sendEmail(
      email, 
      subject+" (" + pdfName +")", 
      "html content only", 
      mailOptions);

MailApp.sendEmail(
      Session.getActiveUser().getEmail(), 
      "FRWD "+subject+" (" + pdfName +")", 
      "html content only", 
      mailOptions);
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将活动工作表以 PDF 形式发送到单元格中列出的电子邮件 的相关文章

  • 如何使用 Google Apps Docs 脚本将光标移动到文档的开头?

    我正在用我的 Google 文档编写 Google Apps 脚本的脚本 并想知道如何将光标移动到文档的开头 我最后想做的只是用一些字符串替换第一行 这个很简单 你可以使用setCursor method 记录在这里 https devel
  • 如何使用文件输入在PDFJS中打开本地PDF?

    我想知道是否有办法使用选择pdf文件input type file 并使用打开它PDFJS https github com mozilla pdf js 您应该能够使用 FileReader 来获取文件对象的内容作为类型化数组 pdfjs
  • 自动递增 ID 号 Google Apps 脚本

    我想在向工作表添加新值时自动增加 ID 我尝试从当前的 ID 列表创建一个列表 但它只计数到 5 因此当自动递增时 它只会到达一个点并为每个输入保存该数字 以下是我尝试获取 ID 号列表的方法 但它没有获取整个列表 我缺少什么 var ss
  • 适用于移动设备的响应式订单确认电子邮件?

    我从未见过令人惊叹的订单确认 发票电子邮件 即使是最好的 html5 网站也会发送糟糕的订单确认电子邮件 有时是纯文本 我相信这是因为发票通常需要使用表格来显示购买的物品 这在移动设备上实现起来非常困难 我发现了一些让手机上的表格更易于管理
  • 如何在多个文档中使用 Google Apps 脚本

    我有一个谷歌应用程序脚本 我想在多个文档中使用它 我也可能想稍后在这些文档中更改它 因此我必须使用same所有这些文档中的脚本 而不是该脚本的副本 我知道以下问题可能属于重复问题 但我不愿意接受它的答案 Google Apps 脚本 如何在
  • 如何在运行脚本之前提交活动单元格中所做的更改? (Google 表格/Google Apps 脚本)

    我正在使用 Google Apps 脚本在 Google 表格中创建提交表单 该表单位于一页上 提交内容被移至第二个隐藏页面 当用户填写表单后 他们按下提交页面上的按钮以激活脚本 我遇到的问题是 当用户填写最后一个单元格然后单击按钮时 输入
  • 插入行 python gdata.spreadsheets.client

    我对专门用于谷歌电子表格的 python gdata API 有点困惑 使用 gdata spreadsheet service 可以很容易地组合一个字典并将其作为新行插入到谷歌电子表格中 如下所示http www mattcutts co
  • 如何将目录及其子目录中的所有 PDF 文件复制到一个位置?

    如何全部复制PDF文件从目录及其子目录到单个目录 实际上还有更多的文件 并且深度有些任意 假设四个目录的最大深度是公平的 我想这些文件需要重命名 如果a pdf例如 位于多个目录中 因为我会adding https ebooks stack
  • 电子邮件链接在 Android 上不起作用

    我有 HTML 格式的点击电子邮件链接的代码 它在我的电脑上运行良好 但在移动设备上不起作用 我只有 Android 所以我不知道问题是否仅在 Android 上或所有移动设备上 当我按下链接时 浏览器显示 网页无法显示 邮寄至 电子邮件受
  • 如何在无头模式下使用 Libre Office Draw 从命令行创建 PDF/A?

    LibreOffice Draw 允许您打开非 PDF A 文件并将其导出为 PDF A 1b 或 PDF A 2b 文件 通过在 macOS 上调用命令行也可以实现相同的效果 Applications LibreOffice app Co
  • Symfony2 - 将 Swiftmailer 添加为服务

    我想将我的电子邮件代码从我的控制器移至服务中 到目前为止我已完成以下操作 在 services yml 中创建条目 在 acme demobundle services EmailManager php 中创建了一个 EmailManage
  • 在 Flutter 中显示 iOS 的 PDF 内联文件

    我正在 flutter 中专门为 iOS 开发一个应用程序 现阶段 我需要向其中添加 PDF 文件 问题是 flutter 没有原生的方式来显示 PDF 文件 据我研究 由此tread https github com flutter fl
  • 如何使用Google脚本获取当前单元格下单元格的值?

    我找不到看起来像这样的选项 var spreadsheet SpreadsheetApp getActive var sheet spreadsheet getActiveSheet sheet getRange sheet getCurr
  • 在 Flash Player 10 中打开 pdf

    我需要在 Flash Player 10 中打开 PDF 该 swf 不会在浏览器中运行 并且系统上不会有 adobe reader 程序 我需要知道是否可以在 Flash 播放器中打开 PDF 而无需以任何方式进行转换 我在谷歌上搜索了无
  • 有没有办法导入/导出容器绑定脚本

    我有一个插件 它使用 appscripts gs 以及 html js 和 css 文件 目前我们所做的是我们有一个参考 Google 文档 其中有一个脚本项目包含所有这些源代码 但是除了手动复制和粘贴之外 没有办法在 GIT 中保留源代码
  • PDF 附件 NodeMailer

    预先感谢您的回复 我编写了一些使用nodemailer 0 7 1的代码 它发送电子邮件并将pdf附加到电子邮件中 但是 pdf 附件在编码时会自行损坏或截断或发生其他情况 我之所以说这是附件之前的文件 即我本地的文件 是512kb 而电子
  • 使用 google apps 脚本添加大量响应

    我想制作一个脚本 添加大量 大约 1500 简历和候选人信息作为对表单的回复 我有谷歌电子表格的信息 我将其链接到表单 但我只能管理回复 即使我更改电子表格 或添加 表单中也不会发生更新 我正在添加行 但没有添加响应 那可能吗 我看到了 2
  • 将UIWebView显示的PDF保存到本地

    我有一个UIViewController与UIWebView显示一个 pdf 文件 具体取决于之前单击的行UITableView 现在我想添加一个按钮 供用户在本地保存此 pdf 文件以供离线使用 然后还有第二个UITableView它应该
  • 从电子表格脚本中调用 Web 应用程序脚本?

    如何从 Google 电子表格容器中的脚本调用外部 Google Web App 脚本 我有许多动态创建的电子表格 并希望它们全部调用一个 Web 应用程序 以实现一致性和易于维护 看看这篇博文 触发主从电子表格之间的更新 http www
  • C#.Net 邮件将进入垃圾邮件文件夹

    我正在从 ASP net Web 应用程序发送电子邮件 邮件发送成功 没有失败 但大多数都进入了垃圾邮件文件夹 请帮助我克服垃圾邮件过滤器 我的发送邮件代码 public void SendMail string FromAddress s

随机推荐

  • pthread_create 无法与 pthread_attr_setschedparam 一起正常工作

    我是线程编程的新手 所以我对这个看似愚蠢的问题表示歉意 我正在尝试使用 pthread attr t 使用 pthread create 创建 POSIX 线程 我正在尝试设置 sched priority 值并将其放入属性中 代码粘贴在下
  • 当连接到一个非常小的/空表时,为什么尽管我使用“LIMIT”,MySQL 仍进行完整扫描?

    编辑 我删除了GROUP BY示例查询中的子句 但同样的问题显示 当我将表 x 连接到空 1 行表 y 时 尽管我使用了限制 MySQL 对表 x 进行全表扫描 原问题 我试图学习如何优化 SQL 查询 但遇到了我无法理解的行为 有这样的模
  • 如何从一个表单刷新另一个表单?

    我有两种形式 form1 和 form2 我使用以下代码片段从 form1 调用 form2 Application run new Form2 Form2 f2 new Form2 f2 show 这段代码运行得非常好 我可以看到 for
  • 如何使用 javascript 将数据显示为 HTML

    我在使用 javascript 将数据显示为 HTML 时遇到问题 我创建的代码仅显示最新数据而不是整个数据 我在开发中使用phonegap 这是代码 var oldHtml document getElementById favorite
  • VBA:搜索子字符串并删除整行

    我正在尝试删除字符串中包含 H 的所有行P柱子 然而 该宏有效 每次只删除一半的必要行 这是因为For代码中的循环 当删除一行时 下一行将具有相同的内容i值作为删除的值 并被跳过Next i Dim LastRow As Long Find
  • 在 Windows 10 中设置环境变量以使用 java 和 javac

    我有一台装有 Windows 10 的新笔记本电脑 我想对其进行设置以便可以使用java and javac从命令行 我已经在网上搜索过 但所有指南都是针对以前的版本 我不想搞乱我不明白的东西 只需将环境变量中的path变量设置为JDK b
  • Swift 中的 CLLocation Manager 获取用户位置

    我正在尝试将 ObjC 中的旧应用程序转换为 Swift 作为练习 但遇到了一些问题 我在旧应用程序中的方式是建立 CLLocation Manager 然后我将使用 manager CLLocationManager alloc init
  • 如何在 MATLAB 中测量图像的旋转?

    我有两个图像 一个是原始的 另一个是旋转的 现在 我需要找出图像旋转的角度 到目前为止 我考虑过发现每种颜色的质心 因为我将使用的每个图像都有带有颜色的正方形 并用它来发现图像旋转了多少 但我失败了 我用它来发现图像中较高方块的质心和颜色
  • Webpack 的 stylus-loader 入门

    好吧 新的 我刚刚添加了我的stylus loader style loader 根据推荐stylus loader 和装载机 test styl loader style loader css loader stylus loader 到
  • Hibernate - 它会改变数据库的结构吗?

    我正在 Spring 上用 java 构建更大的项目 很多人建议我使用 hibernate 来简化对数据库的访问 问题是 我必须使用这个项目以前版本的数据库 它曾经是用 PHP 编写的 所以他们肯定没有使用 hibernate 我读过一些有
  • 为什么无法转换 Slice 类型?

    我想知道为什么你不能这样做 type Foo struct A int type Bar Foo foos Foo Foo 1 Foo 2 bars Bar foos cannot convert foos type Foo to type
  • HTTP 状态 500 实例化 servlet 类时出错 [重复]

    这个问题在这里已经有答案了 我正在编写一个 Web 应用程序并将其部署到 apache tomcat Web 容器 我遵循一个简单的教程http cse csusb edu turner java web programming servl
  • 使 div 跨越网格中的两行

    我有一页充满了块 其中堆积着display inline block 我想让一些大四到两倍 所以我用了float left or right放置其他块 我的问题是如果我有五元素行 我怎样才能放一个更大的元素在中间它的 作为float自然地放
  • 更新路径“x”会在“x”处产生冲突

    当我尝试更新 upsert 项目时发生此错误 Updating the path x would create a conflict at x 字段应出现在 set or in setOnInsert 两者都没有
  • 在 Xcode 4 中重命名项目

    我一定错过了一些明显的东西 但我不知道如何在 Xcode 4 中重命名我的项目 如果我没记错的话 Xcode 3 有一个专门的菜单项 但 Xcode 4 中没有这样的条目 好吧 事实证明这确实是一件小事 您所需要做的就是点击两次slowly
  • 如何根据负载在kubernetes中自动缩放elasticsearch?

    我正在使用 Google Cloud 正在做 RnD 是否可以申请HPAKubernetes 中 Elasticsearch 上的 水平 Pod 自动缩放 I did elasticsearch设置于Kubernetes https git
  • 如何在 Windows 上的 Anaconda Python 中安装 Keras 和 Theano?

    我正在尝试使用以下 Keras 包在 Python 中处理神经网络 from keras utils import np utils from keras layers core import Dense Activation Dropou
  • 通用方法不适用于“int”类型变量?

    我在使用两个变量时遇到了一些麻烦 int 和 Integer 它们大致相同 但是 如下面的代码所示 它们的行为并不总是相同 这是我的问题 这段代码运行得非常完美 我创建了一个通用方法 printArray 它需要任何类型变量的数组 因为它是
  • 为什么不能降低 Java 子类中方法的可见性?

    当您在子类中重写方法时降低方法的可见性时 为什么编译器会给出错误消息 因为子类的每个实例仍然需要是基类的有效实例 请参阅里氏替换原则 如果子类突然丢失了基类的一个属性 例如 即公共方法 那么它将不再是基类的有效替代品
  • 将活动工作表以 PDF 形式发送到单元格中列出的电子邮件

    我正在尝试使用下面的脚本将 Google 表格文档中的第一张工作表以 PDF 形式发送到电子邮件 要发送到的电子邮件地址列在单元格 A1 中 但是 此脚本将整个电子表格作为 PDF 发送 而不仅仅是第一个工作表 我一直在尝试使用 Stack