簡體   English   中英

從 Google 表格自動發送包含表格的電子郵件

[英]Automatically Send Email Containing Table From Google Sheets

我在 Google 表格中創建了一個表格,我想每 5 天自動將該表格(25 行,2 列)發送到特定的電子郵件。

我已經知道如何通過腳本發送電子郵件,基本上你使用 MailApp.sendEmail。

function sendFuelcount() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  sheet.setActiveSheet(sheet.getSheets()[0]);
  var column1 = sheet.getRange("D2:D25").getValue();
  var column2 = sheet.getRange("A2:A25").getValue();
  var data = Utilities.formatDate(new Date(), "GMT", "dd-MMM-yyyy")
  var msg = ""+nome+" "+fuel+"\n"
    
  MailApp.sendEmail("abcd@gmail.com",  ""+data+"", msg, {
                    name: 'Auto Message'});

這是到目前為止的代碼,但不幸的是,它只寫入了兩列的第一行,而不是 25 x 2 的值。

在電子郵件中我得到:

第 11 列 第 12 列

我在電子郵件正文中想要的是:

Column11 Column12
Column21 Column22
Column31 Column32
Column41 Column42
Column51 Column52

直到第 25,1 列和第 25,2 列或 Google Sheet 表格的副本。

希望我已經說清楚了。

謝謝你。

編輯:下面的答案可以導出所有值,但不是以有組織的方式導出。

我在電子郵件中得到的是:

A,B,C,D,...,i
1,2,3,4,...,j

我想要的是這個:

A - 1
B - 2
C - 3
D - 4
i - j

有沒有辦法做到這一點? 意味着如何在電子郵件中組織和顯示。 就像一張桌子。

我設法做到這一點:

    function sendFuelcount() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  sheet.setActiveSheet(sheet.getSheets()[0]);

  var nom0 = sheet.getRange("A1").getValue();
  var fue0 = sheet.getRange("D1").getValue();
  var line0 = nome0 + "......" + fuel0;

  var nom1 = sheet.getRange("A2").getValue();
  var fue1 = sheet.getRange("D2").getValue();
  var line1 = nome1 + "......" + fuel1;

  var nome2 = sheet.getRange("A3").getValue();
  var fuel2 = sheet.getRange("D3").getValue();
  var line2 = nome2 + "......" + fuel2;

  var nom3 = sheet.getRange("A4").getValue();
  var fue3 = sheet.getRange("D4").getValue();
  var line3 = nome3 + "......" + fuel3;

  var nom4 = sheet.getRange("A5").getValue();
  var fue4 = sheet.getRange("D5").getValue();
  var line4 = nome4 + "......" + fuel4;

  var nom5 = sheet.getRange("A6").getValue();
  var fue5 = sheet.getRange("D6").getValue();
  var line5 = nome5 + "......" + fuel5;

  var data = Utilities.formatDate(new Date(), "GMT", "dd-MMM-yyyy") //define a data

  var msg = ""+line0+"\n"+line1+"\n"+line2+"\n"+line3+"\n"+line4+"\n"+line5+" \n EMAIL GERADO AUTOMATICAMENTE"

  MailApp.sendEmail("abcd@abcd.com",  ""+data+"", msg, {
                    name: 'Auto Message'});
}

我設法得到這個結果:

Ba......(L)
eda......21
Alf......601
Arcs......95
Aamar......16
Canco......45
  EMAIL GERADO AUTOMATICAMENTE

它更好,但不是我想要的。 我想要什么(或創建一個表):

Ba.......(L)
eda......21
Alf......601
Arcs.....95
Aamar....16
Canco....45

  EMAIL GERADO AUTOMATICAMENTE

這就是我想要的,但我認為代碼過於復雜,我必須重復 25 次。 我不知道如何正確使用 For。 但我認為它在這里很有用。

謝謝你。

您將不得不使用 getValues() 而不是 getValue()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM