Была попытка автоматически сгенерировать pdf анализируемого отчета с использованием данных, сгенерированных из исходного листа.
Попытка создать следующий сценарий, чтобы при обновлении исходных данных в последней обновленной строке анализ выполнялся готово и электронная почта pdf запущена.
Копирование из выполняется для копирования данных на другой лист (Ответы), так как исходный исходный лист (ответы из источника), кажется, занимает всего нет. строк из-за функции IMPORTRANGE.
Вторая часть вопроса, какой триггер должен быть установлен триггер emal pdf. Большое спасибо.
var spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
function Copyfrom() {
var srcSheet = spreadSheet.getSheetByName("ResponsesFromsource");
var tarSheet = spreadSheet.getSheetByName("Responses");
var srcvalues = "";
var destvalues = "";
var lastRow = srcSheet.getLastRow();
for (var i = 2; i <= lastRow; i++){
var cellValSrc = srcSheet.getRange("C" + i).getValue();
if(cellValSrc != " "){
srcvalues = srcSheet.getRange("A"+i+":"+"CZ"+i).getValues();
var cellValTar = tarSheet.getRange("C" + i).getValue();
if(cellValTar == ""){
tarSheet.getRange("A"+i+":"+"CZ"+i).setValues(srcvalues);
LastRow();
}
}
}
}
function LastRow() {
var ss = spreadSheet.getSheetByName("Responses");
var lastRow = ss.getLastRow();
var range = spreadSheet.getSheetByName("Master Inputs").getRange("D1");
range.setValue(lastRow); //sets the last row number to the D1 range in master inputs sheet
var emailValue = ss.getRange(lastRow, 3).getValue();
EmailPdf(emailValue);
};
function EmailPdf(email){
var sheetId = spreadSheet.getSheetByName("Dashboard").getSheetId(); //get the sheet id of "Dashboard"
var URL = "https://docs.google.com/spreadsheets/d/"+spreadSheet.getId()+"/export"+
"?format=pdf&"+
"gid="+sheetId+"&"+
"size=letter&"+
"fzr=true&"+
"scale=4&"+
"portrait=false&"+
"fitp=true&"+
"gridlines=false&"+
"printtitle=false&"+
"sheetnames=false&"+
"pagenum=false&"+
"top_margin=0.20&"+
"bottom_margin=0.20&"+
"left_margin=0.20&"+
"right_margin=0.20&"+
"attachment=true";
var params = {method:"GET",headers:{"authorization":"Bearer "+ ScriptApp.getOAuthToken()}};
var response = UrlFetchApp.fetch(URL,params).getBlob();
MailApp.sendEmail(email,'Subject','Message',{
attachments: [{
fileName: "FilenameA" + ".pdf",
content: response.getBytes(),
mimeType: "application/pdf"
}],
cc: 'email1'
});
}