Скрипт для отправки Google Sheet в PDF | Как форматировать даты в теме письма - PullRequest
0 голосов
/ 03 марта 2020

Есть скрипт, который я вытащил с этого форума, и в большинстве случаев он отлично работает. Мне просто трудно написать несколько изменений, которые я сделал.

  1. Я создаю дату (извлекается из ячейки на листе) и помещаю ее в строку темы письма, однако это автоматическое форматирование, включающее время и часовой пояс. например, ср. 04 марта 2020 00:00:00 GMT + 1300 (NZDT). Я бы хотел, чтобы он отображался так, как он отформатирован в листе. например, ср. март 04.

  2. Попытка создать первую строку листа [строка 3] и игнорирование первых двух строк при создании PDF.

Любая помощь высоко ценится.

function emailPdf(){ // this is the function to call
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = ss.getSheets()[3];
  var shName = sh.getName()

  sendSpreadsheetToPdf(3, shName, ('myemail@gmail.com'), sh.getRange('B3').getValue(), sh.getRange('B4').getValue(), sh.getRange('D28').getValue());
}
function sendSpreadsheetToPdf(sheetNumber, pdfName, email, subject, date, 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+" | "+date+" (" + pdfName +")", 
      "html content only", 
      mailOptions);

MailApp.sendEmail(
      Session.getActiveUser().getEmail(), 
      subject+" | "+date+" (" + pdfName +")",
      "html content only", 
      mailOptions);
  }
}

1 Ответ

2 голосов
/ 03 марта 2020

peruse: https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

var prettyTime= Utilities.formatDate(date,'America/Los_Angeles', "EEE MMM dd" );

Что произойдет, если вы скроете первые две строки перед преобразованием в pdf?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...