Mit Google Apps Script ein einzelnes Blatt aus einer Tabelle als PDF in einem bestimmten Ordner speichern

Ich verwende eine Google-Tabelle zum Vorbereiten von Rechnungen und suche ein einfaches Skript, mit dem ein Blatt, in dem sich die Rechnung befindet, in einem Ordner "Rechnungen" gespeichert wird, um ein Archiv zu erstellen. Ich habe Code von zahlreichen Mitwirkenden auf Stackoverflow und Youtube "ausgeliehen" und mir einen Code ausgedacht, der funktioniert. Ich musste die Rechnung in eine neu erstellte Tabelle kopieren, da es anscheinend unmöglich ist, ein PDF aus einer einzelnen Tabelle in einer Typentabelle zu erstellen. Ich musste auch ein Stück Code verwenden, um das PDF vom Stammverzeichnis in einen "Rechnungen" -Ordner zu verschieben. Das einzige, was ich nicht lösen kann, ist, dass die in Zeile 6 erstellte Tabelle aus 2 Blättern besteht. Eine leere und eine korrekt kopierte. Das so erstellte PDF hat alsa 2 Blätter, ein leeres und ein richtiges Blatt. Hat jemand eine Ahnung, wie man das löst? Übrigens dauert es manchmal einige Minuten, bis das PDF in den Ordnern angezeigt wird.

Below ist der Code

function generatePdf(){
    //Create a temporary spreadsheet, to store the desired sheet from the spreadsheet in. 
    var originalSpreadsheet = SpreadsheetApp.getActive();
    originalSpreadsheet.setActiveSheet(originalSpreadsheet.getSheets()[4]);
    var name = "Testname"
    var newSpreadsheet = SpreadsheetApp.create(name);
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
    sheet = originalSpreadsheet.getActiveSheet();
    sheet.copyTo(newSpreadsheet);
    //Save the desired sheet as pdf
    var pdf = DriveApp.getFileById(newSpreadsheet.getId()).getAs('application/pdf');
    var saveCopy = DriveApp.createFile(pdf);
    //Delete temporary spreadsheet
    DriveApp.getFilesByName(name).next().setTrashed(true);
    //Move the pdf file from the rootfolder to the folder where invoices are to be stored.
    var files = DriveApp.getRootFolder().getFiles();
    while (files.hasNext()) {
        var file = files.next();
        var destination = DriveApp.getFolderById("0B3ok04PZOVbgLXA2dy14MVlLRXM");
        destination.addFile(file);
        var pull = DriveApp.getRootFolder();
        pull.removeFile(file);    
    }
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage