将 Google 电子表格中的范围作为电子邮件发送(格式问题)

2024-04-19

以下代码针对第 2 列和第 3 列中的数据发送一封电子邮件,但电子邮件中的结果并不在另一个之下。

Code.gs
function email() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var bulk = ss.getSheetByName("Bulk");
  var lastrow = bulk.getLastRow();

  var data1 = bulk.getRange(1, 2, lastrow).getValues();
  var data2 = bulk.getRange(1, 3, lastrow).getValues();

  var onedata="", twodata="";

  for (var i =1; i < data1.length; i++) {
    if (onedata.length) {
              onedata += ", ";
    }
   onedata += data1[i] 
  }

  for (var i =1; i < data2.length; i++) {
    if (twodata.length) {
              twodata += ", ";
    }
   twodata += data2[i] 
  }

  var report = ""

  report += "<tr><td style='padding:5px'>" + onedata + "</td><td style='padding:5px'>" + twodata + "</td></tr>";


  report ="<table><tr><th'>First data</th><th>Second data</th></tr>" + report + "</table>";

  MailApp.sendEmail(Session.getActiveUser().getEmail(),
                    "Your report", report, {htmlBody: report});

  }

通过电子邮件收到结果

First data                  Second data
Apple, Orange, Grapes,      Red, Orange, Green, Yellow,
Banana, Chickoo             Grey

预期结果

First data  Second data
Apple       Red
Orange      Orange
Grapes      Green
Banana      Yellow
Chickoo     Grey

你在 for 循环中犯了一个小错误。

这是您的代码,进行了一些小的修改:

function email() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var bulk = ss.getSheetByName("Bulk");
  var lastrow = bulk.getLastRow();

  var data1 = bulk.getRange(1, 2, lastrow).getValues(); // fruit column
  var data2 = bulk.getRange(1, 3, lastrow).getValues(); // color column

  var report = ""
  var fruitTable ="";
  for(var i in data1){
    if(data1[i]!="") fruitTable += "<tr><td style='padding:5px'>" + data1[i] + "</td><td style='padding:5px'>" + data2[i] + "</td></tr>";
  }

  report ="<table><tr><th>First data</th><th>Second data</th></tr>" + fruitTable + "</table>";

  MailApp.sendEmail(Session.getActiveUser().getEmail(),
                    "Your report", report, {htmlBody: report});
}

我希望这能满足您的需求。
Harold

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

将 Google 电子表格中的范围作为电子邮件发送(格式问题) 的相关文章

  • 如何阻止 MailApp.sendEmail() 每约 80 个字符向电子邮件正文添加换行符?

    我正在使用附加到我的 Google 云端硬盘中的 google 工作表的 google 脚本来发送电子邮件 我注意到 MailApp sendEmail 发送的电子邮件的正文与原来的不太一样 它每约 75 个字符添加一个换行符 不中断单词
  • 未记录的 Sheet API 限制问题

    我已经看过人们遇到类似问题的帖子 但找不到明确的答案 我尝试使用以下代码行检索 264735 个插槽的二维数组 var optionalArguments majorDimension ROWS valueRenderOption FORM
  • 根据标准在多个需求之间分配数量

    我正在创建一个周期盘点表 表 1 将是用户输入 其中将放置找到的材料和数量 表 2 是盘点时的库存快照 我希望将找到的材料数量分配到表 2 上的数量中 直到表 1 的数量用完为止 按照从最新批次 日期代码 到最旧批次 先进先出 的顺序分配数
  • 是否可以将 .gs 文件上传到复制的 Google 文档的应用程序脚本项目?

    我复制了一个电子表格供多人使用 并附加了脚本 我的问题是如何修改项目中的脚本 而不必将每个更改复制并粘贴到 gs项目中的文件 This is the base document from which the other versions w
  • 更新行时获取电子邮件用户值

    我和我的团队有电子表格 当他们更新行 基于他们使用的帐户 时 如何 自动 获取电子邮件用户值 因此 每次他们更新 任务 列时 电子邮件 列都会自动更新 就像下表一样电子表格 https i stack imgur com lgDhF png
  • 将“密码”类型添加到 Google Apps 脚本输入框

    是否可以将 密码 类型分配给 Google Apps 脚本输入框 以便不显示文本 以下工作正常 但输入字段是一个简单的文本框 并显示文本而不是 Browser inputBox Please enter your password 我有一个
  • 在网页中显示 Google 工作表单元格的内容

    我有一个包含 html 代码的单元格的 google 工作表 我想知道在网页中显示此 html 的最佳方式 我尝试过谷歌电子表格 API 和谷歌可视化 API 以下是如何使用 Javascript 图表 API 显示单个单元格中的信息 也许
  • 如何检查 Gmail 标签是否有嵌套子标签?

    使用Google Apps脚本 是否有一个功能可以检查Gmail标签是否有嵌套子标签 如果标签有一个或多个子标签 我想将它们从代码序列中排除 没有直接的方法可以从 父 标签获取标签 但是使用简单的方法来获取标签非常简单getUserLabe
  • 如何在多个工作表上运行脚本,Google Sheets

    我有一个脚本 想在 Google 工作表中的特定选项卡上运行 但不一定在所有选项卡上运行 我尝试执行两个不同名称的脚本 但只有最后一个保存的脚本会运行 如何编写此脚本以在特定选项卡上运行 这是我的开始脚本 function onEdit v
  • 根据单元格值隐藏列

    在我的谷歌电子表格 A 中 我使用 TRANSPOSE 和 IMPORTRANGE 公式的组合从日历电子表格 B 导入数据 以便填写事件的工作时间表 因为每个日期都有 3 个事件空位 但这些空位并不总是被填满 所以我收到了很多过时的列 表格
  • Google Apps 脚本是否允许任何类型的内省?

    Google Apps 脚本可以学习自己的名称吗 或者它的ID 它可以获取其包含文件夹的 ID 吗 它可以了解它在文件夹层次结构中的位置吗 脚本 A 可以获取 设置脚本 B 的属性吗 脚本 A 可以编辑脚本 B 使用的库的任何方面吗 脚本
  • Drive.Permissions.insert(值)-Drive API,您可以在“值”下使用数组吗?

    是否可以在此处使用 值 下的数组来阻止我创建组别名电子邮件地址 例如 userValues email protected cdn cgi l email protection email protected cdn cgi l email
  • 通过 Apps 脚本强制刷新公式

    有时 更改单元格的值时 电子表格中的公式不会自动刷新 并且单元格上会出现注释以选择该单元格 然后按 CTRL SHIFT E 强制重新加载公式 我想从 Apps 脚本调用此重新加载函数 有没有办法用 Apps 脚本来做到这一点 我尝试了 S
  • Google Apps 脚本:连接日期和时间

    更新 要使用 AppsScript 创建 Google 日历事件 我们可以使用以下简单方法createEvent eventName startTime endTime 我已经使用过这个并且没有任何问题 但我使用的唯一日期格式是谷歌表格中的
  • Google Sheets API v4 和 valueInputOption

    我的电子表格中有三列 第一个是日期 第二个和第三个是简单字符串 当我批量上传数据时valueInputOption RAW 我的日期列得到错误的结果 所有日期前面都有一个看不见的撇号 字符串列没问题 当我使用valueInputOption
  • .NET 客户端中 Google 表格中的条件格式请求

    我知道如何在 Google Sheets API 中对值和其他格式进行批量电子表格更新请求 但条件格式似乎有所不同 我已正确设置请求 AddConditionalFormatRuleRequest formatRequest new Add
  • 如何求Google电子表格中每列的最大值之和?

    我有一个谷歌数字电子表格 如何从每列中获取最大值 并仅使用one公式 没有临时单元 没有脚本 1 2 1 0 1 3 0 2 0 对于上表 结果应为 6 1 2 3 每列的最大值 但我想要一个也适用于更大的表的解决方案 作为一个更普遍的问题
  • 如果行值存在于另一个工作表中,则将其复制到新工作表

    我是 Google 脚本新手 需要创建一个脚本 我找到了这个question https stackoverflow com questions 22008331 google script delete row if a value in
  • 查询新的谷歌电子表格

    我使用谷歌可视化创建了一个折线图 该代码查询谷歌电子表格 当我使用普通电子表格 第 1 行 时 它可以工作 当我使用新的谷歌电子表格 第 2 行的 URL 时 出现以下错误 Error in query request time out 我
  • 在 Google 表格中创建每周/每月/每年折线图,以汇总同一周/月/年范围内的金额

    我想创建一个代表两列数据的折线图 F 输入日期 和 H 美元金额 X 轴应为日期 Y 轴应为美元金额 问题是我希望折线图上的日期代表给定周 月或年输入的所有金额的总和 这张照片是 YouTube 分析的 它创建了一个与我想在工作表中创建的类

随机推荐

  • Android 数据库 - 无法执行此操作,因为连接池已关闭

    我对 android 数据库和游标有奇怪的问题 有时 很少 发生 我收到客户的崩溃报告 很难找出它崩溃的原因 因为我有大约 150 000 个活跃用户 可能每周大约有 1 个报告 所以这确实是一些小错误 这是例外 STACK TRACE j
  • 找不到 db4o 数据库文件

    您好 我正在编写一个简单的 CRUDE 应用程序 该应用程序使用 JSF 和 DB4O 完美运行 我可以正常添加并列出所有实体 不会出现错误 我使用此代码来保存实体 bd Db4oEmbedded openFile configuratio
  • 如何在传递一些上下文时在expressjs中重定向?

    我正在使用express 在node js 中制作一个网络应用程序 这是我所拥有的内容的简化 var express require express var jade require jade var http require http v
  • iOS照片框架

    我想检索所有照片local设备上的相册 基本上设备上的所有照片 本地标识符列表是否唯一 使用照片框架的最佳方法是什么 我的问题不重复 因为另一个问题还讨论了云资产和设备上没有的资产 当检索图像的实际数据时 它会在尝试获取同步时返回空数据 我
  • ModuleWithProviders 需要 1 个类型参数 - angular-autofocus-fix

    安装后angular autofocus fix 导入自动对焦模块 当我运行角度项目时 它显示以下错误 ERROR in node modules angular autofocus fix index d ts 4 23 error TS
  • 从数据表中获取隐藏行内容并将其与表单一起提交

    我遇到了一个问题 现在它占用了我的时间 我有一个包含 7 条记录的表 例如 该表具有 input 和 textarea 元素 用户可以在其中输入内容 现在 分页的值为每页 5 条记录 我有两个页面 用户在评论部分输入数据 单击分页中的 下一
  • viewWillAppear 与 Viewdidload ios

    当使用 iOS 导航应用程序编写代码时 我遇到了以下问题 我可以在哪里放置 UITableView 的 initdata 方法 在 viewWillAppear 或 viewDidLoad 中 请帮帮我 您可以根据应用程序的要求放置 ini
  • sql Sparklyr Sparkr Databricks 上的数据帧转换

    我在使用以下代码创建的数据块上有 sql 表 sql CREATE TABLE data USING CSV OPTIONS header true inferSchema true LOCATION url data csv 以下代码分别
  • Iptables v1.6.1 无法初始化 iptables 表“过滤器”Ubuntu 18.04 Bash Windows

    我正在从 Windows Bash 运行 Ubuntu 18 04 uname a Linux DESKTOP M87DGAS 4 4 0 17134 Microsoft 112 Microsoft Thu Jun 07 22 57 00
  • Mongo $in 与复合索引

    如何高效地做好 in使用复合索引查找集合 下面的示例中 索引位于字段 a 和 b 上 例如 db foo createIndex a 1 b 1 SQL 中的示例 SELECT FROM foo WHERE a b IN aVal1 bVa
  • 实体框架上下文 6.1.3 未刷新/销毁?

    在此单元测试中 我将验证内容字节列的 MD5 是否已正确计算 保存和获取 但是 实体框架 6 1 3 上下文似乎没有刷新 销毁 因为在原始 SQL UPDATE 明显生效之后 但在使用新上下文获取行时没有显示 namespace UnitT
  • 按时间合并 pandas 数据框和另一列

    我有两个熊猫数据框 我正在尝试将它们组合成一个数据框 我是这样设置它们的 a date 1 1 2015 00 00 1 1 2015 00 15 1 1 2015 00 30 num 1 2 3 b date 1 1 2015 01 15
  • dart 中“library”关键字的确切含义

    我知道这个关键字应该在一些自定义库中使用 但当我放下它时 什么也没有发生 至少我没有注意到任何事情 进口仍然运作良好 私人会员仍然是私人的 有人可以解释一下 Dart 中的 library 关键字的作用吗 更新2018 03 05 有一段时
  • 如何获取Recyclerview特定Item的ViewHolder

    有没有办法获得ViewHolder仅基于给定位置的回收者视图的特定项目 就像是getViewHolder position public MyViewHolder getViewHolder int position MyViewHolde
  • 无法在单元测试用例中调用@HostListener方法

    我使用创建了一个自定义指令 Directive我正在使用的 HostListener并且代码运行良好 现在 在编写测试用例时 我需要调用 HostListener单元测试用例中的方法 我还可以看到在代码覆盖率中代码没有被覆盖 以下是代码 焦
  • 如何通过 Internet Explorer 使用网络摄像头

    有什么办法可以跑getUserMedia在 Internet Explorer 中并使用网络摄像头 不使用 Flash 据此 没有 http caniuse com search getuserMedia http caniuse com
  • 将数据从模态内部的部分视图传递到主视图,然后关闭模态

    我有一个按钮 在我的中定义如下索引 cshtml file
  • 冷融合和分页

    首先 我对 ColdFusion 很陌生 但学得很快 因此 我正在尝试构建一个大型数据库 最初每页显示 25 行的所有结果 并有一个下一个 上一个链接来浏览页面 这一切都工作正常 但是当我执行搜索时 当新结果显示大约几页时 分页链接不起作用
  • Spring boot,禁用测试安全性

    我使用 Spring Boot 版本 1 3 0 M5 我也尝试过版本 1 2 5 RELEASE 我添加了弹簧安全
  • 将 Google 电子表格中的范围作为电子邮件发送(格式问题)

    以下代码针对第 2 列和第 3 列中的数据发送一封电子邮件 但电子邮件中的结果并不在另一个之下 Code gs function email var ss SpreadsheetApp getActiveSpreadsheet var bu