【发布时间】:2016-04-18 23:50:12
【问题描述】:
我已经搜索了几个小时,但找不到组合以下脚本的方法。
首先,我有这个脚本,它将创建一个文件夹并将程序保存到其中:
function printpdf() { //busca un folder, si no lo hay lo crea y crea 2 sub carpetas un google document copiado en cada una de ellas
var name='Programs';
var carpeta = DriveApp.getRootFolder().searchFolders("title contains '"+name+"'");
if (carpeta.hasNext()===true) {
while (carpeta.hasNext()) {
var folder = carpeta.next();
Logger.log(folder.getName()+' '+folder.getId());
}
}else{
var folder=DriveApp.getRootFolder().createFolder(name);
var parent=DriveApp.getFolderById(folder.getId()); // get parent folder
var folder2 =parent.createFolder('Subfolder'); // 1° way to create sub folder
var doc = DocumentApp.create('Documento sta');
var sheet = SpreadsheetApp.create('Spreadsheet sta');
Utilities.sleep(300); // este retardo es para garantizar en el user-side la creacion del nuevo archivo
var files = DriveApp.getFilesByName('Documento sta');// or Id var file = DriveApp.getFileById(doc.getId());
while (files.hasNext()) {
var file = files.next();
Logger.log('ojo '+file.getName());
file.makeCopy(folder2);
var file2=file.makeCopy(folder);
file2.setName('Acta individual del alumno')
var blob = file2.getAs('application/pdf');
var file2pdf = folder.createFile(blob);
var file2pdf = DriveApp.getFileById(file2pdf.getId());
var file2pdf=file2pdf.makeCopy(folder);
Logger.log('se creó: '+file.getName()+' en la carpeta: '+folder.getName()+' el PDF es: '+file2pdf.getId());
DriveApp.getFileById(file2pdf.getId()).setTrashed(true)
DriveApp.getFileById(docid).setTrashed(true)
}
}
}
接下来,我有这个脚本,可以将工作表另存为 PDF 并邮寄:
function sendEmailWithPdf() {
var
source = SpreadsheetApp.getActiveSpreadsheet(),
subject = source.getSheets()[1].getRange('b2').getValue(),
body = source.getSheets()[1].getRange('b3').getValue(),
pdfName = 'Training Workout',
source = SpreadsheetApp.getActiveSpreadsheet(),
sheetName = source.getActiveSheet().getName(),
mailTo = source.getActiveSheet().getRange('g2')
.getValue(),
url,
sheets = source.getSheets()
sheets.forEach(function (s, i) {
if (s.getName() !== sheetName) s.hideSheet();
});
url = Drive.Files.get(source.getId())
.exportLinks['application/pdf'];
url = url + '&size=letter' + //paper size
'&portrait=false' + //orientation, false for landscape
'&fitw=true' + //fit to width, false for actual size
'&sheetnames=false&printtitle=false&pagenumbers=false' + //hide optional
'&gridlines=false' + //false = hide gridlines
'&fzr=false'; //do not repeat row headers (frozen rows) on each page
var token = ScriptApp.getOAuthToken();
var response = UrlFetchApp.fetch(url, {
headers: {
'Authorization': 'Bearer ' + token
}
});
MailApp.sendEmail(mailTo, subject, body, {
attachments: [response.getBlob().setName(pdfName)]
});
sheets.forEach(function (s) {
s.showSheet();
})
}
如何将基于单元格值(如第二个脚本)从工作表中保存单个 PDF 的功能组合到第一个脚本指定的新文件夹中?非常感谢!
【问题讨论】:
-
还是有点卡住了……谢谢!
标签: google-apps-script google-sheets