2016-08-22 4 views
0

Ich habe derzeit eine Google-Tabelle, die eine CSV-Datei erstellen und speichern Sie es auf meinem Google-Laufwerk, wenn der Trigger ausgelöst wird. Was ich nicht herausfinden kann ist, wie man die vorhandene CSV-Datei löscht, bevor eine neue CSV-Datei erstellt wird. Wenn es die neue Version speichert, erstellt es einfach eine weitere Kopie. Ich brauche die vorherige Datei (oder löschen Sie die alte dann Export/schreiben die neue Version.)Google App Script zum Exportieren und Ersetzen von CSV-Dateien

Hier ist das Skript zu überschreiben, die CSV-Datei zu erstellen:

function saveAsCSV() { 
    // Prompts the user for the file name 
    var fileName = ("myCSVFile"); 
    // Check that the file name entered wasn't empty 
    if (fileName.length !== 0) { 
    // Add the ".csv" extension to the file name 
    fileName = fileName + ".csv"; 
    // Convert the range data to CSV format 
    var csvFile = convertRangeToCsvFile_(fileName); 
    // Create a file in the Docs List with the given name and the CSV data 
    DriveApp.createFile(fileName, csvFile); 
    } 
    else { 
    Browser.msgBox("Error: Please enter a CSV file name."); 
    } 
} 

Wie kann ich die CSV-Datei überschreiben Jedes Mal, wenn der Skript-Trigger ausgelöst wird?

+0

Mögliche Duplikat [So löschen/überschreiben CSV-Datei google apps script?] (http://stackoverflow.com/questions/14965442/how-to-delete-overwrite-csv-file-using-google-apps-script) –

+0

Ich habe versucht, mit dieser Lösung zu arbeiten und konnte es nicht bekommen um für mich zu arbeiten – cgrouge

Antwort

1

Sie können die Datei vor dem Schreiben des neuen löschen, indem Sie file.setTrashed(true) verwenden. Siehe die Führung Beispiel in der File Class documentation.

+0

Ich konnte eine Lösung in der Verbindung finden, die Sie zur Verfügung stellten. Die Datei wird gelöscht und eine neue Datei wird eingefügt. Vielen Dank! – cgrouge

1

können Sie entweder löschen Sie die Datei zunächst mit File.setTrashed(true);, oder Sie können einfach den Inhalt der Datei ändern, indem File.setContent(csvFile);

+0

Zum Ändern des Inhalts der Datei ersetze ich dies: "DriveApp.createFile (fileName, csvFile);" mit Ihrer Lösung: "File.setContent (csvFile);"? – cgrouge

+0

Ja, außer dass Sie die 'File' * -Instanz * erhalten würden, nicht die Singleton wie' DriveApp'. Zum Beispiel: var f = DriveApp.getFile (id); f.setContent (csv); ' – rmhunter

Verwandte Themen