Bonjour tout le monde.
Voilà, j’ai un petit soucis avec mon script sur google sheet. L’idée c’est de pouvoir faire un PDF avec 2 onglets de mon google sheet. J’ai donc fait un script qui copie les données sur un fichier temporaire et qui ensuite fait le PDF.
Sauf que, les données copiées sont des formules, donc ca me donne le resultat en #REF puisqu’il n’a plus les formules…
J’ai bien essayé d’utiliser un PASTE.VALUES mais ça ne fonctionne pas ><
Auriez-vous une idée ? Merci d’avance
function saveToPDF() {
var dest = SpreadsheetApp.create('temp');
var s1 = SpreadsheetApp.getActive().getSheets()[7];
var s2 = SpreadsheetApp.getActive().getSheets()[12];
//var s3 = SpreadsheetApp.getActive().getSheets()[3];
s1.copyTo(dest);
s2.copyTo(dest);
//s1.copyTo(dest,SpreadsheetApp.CopyPasteType.PASTE_VALUES,false);
//s2.copyTo(dest,SpreadsheetApp.CopyPasteType.PASTE_VALUES,false);
// s3.copyTo(dest);
dest.deleteActiveSheet();
// Get folder containing spreadsheet, for later export
var parents = DriveApp.getFileById(dest.getId()).getParents();
if (parents.hasNext()) {
var folder = parents.next();
}
else {
folder = DriveApp.getRootFolder();
}
//additional parameters for exporting the sheet as a pdf
var url_ext = 'export?exportFormat=pdf&format=pdf' //export as pdf
// Print either the entire Spreadsheet or the specified sheet if optSheetId is provided
+ '&id=' + dest.getId()
// following parameters are optional...
+ '&size=letter' // paper size
+ '&portrait=true' // orientation, false for landscape
+ '&fitw=true' // fit to width, false for actual size
+ '&sheetnames=false&printtitle=false&pagenumbers=false' //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 artiste = sheet.getRange('C3').getValue();
var activeSSName = SpreadsheetApp.getActive().getName();
var response = UrlFetchApp.fetch("https://docs.google.com/spreadsheets/" + url_ext, options);
var blob = response.getBlob().setName(activeSSName + '.pdf');
//from here you should be able to use and manipulate the blob to send and email or create a file per usual.
//In this example, I save the pdf to drive
folder.createFile(blob);
var toDelete = DriveApp.getFileById(dest.getId());
toDelete.setTrashed(true);
}
+0
-0