A vérifier
Mets l'identifiant dans ton drive du dossier de stockage des pdf
Si ok, enlève les // devant la ligne
// var data = form.getRange('A2:AC' + form.getLastRow()).getValues()
et supprime la précédente
const dossier = DriveApp.getFolderById('ici l\'id du dossier de stockage des pdf');
function publi() {
var form = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Réponses au formulaire 1')
var data = form.getRange('A2:AC5').getValues()
// var data = form.getRange('A2:AC' + form.getLastRow()).getValues()
var events = form.getRange('A1:AC1').getValues().flat()
data.forEach(function (r) {
var participations = []
var participant = r[1]
var conseiller = r[2]
r.forEach(function (ok, j) {
if (ok == 1) { participations.push(events[j]) }
})
if (participations.length > 0 && participant != '') {
publier(participant, conseiller, participations)
}
})
}
function publier(participant, conseiller, participations) {
var d = Utilities.formatDate(new Date(), "GMT+1", "yyyy-MM-dd HH:mm")
var pub = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Publication')
pub.getRange('participations').offset(0, -1, pub.getLastRow(),2).clearContent()
pub.getRange('participant').setValue('Cher⸱e ' + participant)
pub.getRange('participations').offset(0, 0, participations.length).setValues(transpose([participations]))
pub.getRange('participations').offset(participations.length + 2, -1).setValue('Votre conseiller⸱e ' + conseiller)
SpreadsheetApp.flush();
// Création du fichier pdf
const url = 'https://docs.google.com/spreadsheets/d/' + SpreadsheetApp.getActiveSpreadsheet().getId() + '/export?';
const exportOptions =
'exportFormat=pdf&format=pdf' +
'&size=A4' +
'&portrait=true' + // orientation portrait, false pour paysage
'&fitw=false' + // pas d'ajustement en largeur
'&sheetnames=false&printtitle=false' + // pas de nom ni de titre à l'impression
'&pagenumbers=false&gridlines=false' + // pas de numérotation, pas de grille
'&fzr=false' + // frozen rows = pas de répétition de l'en-tête
'&gid=' + pub.getSheetId();
var params = { method: "GET", headers: { "authorization": "Bearer " + ScriptApp.getOAuthToken() } };
var reponse = UrlFetchApp.fetch(url + exportOptions, params).getBlob();
dossier.createFile(reponse.setName(participant + ' ' + d));
}
function transpose(a) {
return Object.keys(a[0]).map(function (c) { return a.map(function (r) { return r[c]; }); });
}
reste encore à mettre en forme la feuille publication