2017-06-09 4 views
0

Ich verwende Google Sheets, um Daten in eine MySQL-Datenbank zu importieren. Jeden Monat wird ein neues Blatt zum Beispiel 06_2017 erstellt. Gibt es eine Möglichkeit, das neu erstellte Blatt als aktives Blatt zu setzen oder basierend auf dem aktuellen Monat & Jahr dieses Blatt als aktiv zu setzen. StattSet neu erstellte Google-Blatt als das aktive Blatt

var gsheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('06_2017'); 
    var gsheetname = sheet.getSheetName(); 
    var gdata = sheet.getDataRange().getValues(); 
+0

Sie können den Namen des Blattes in PropertiesService speichern und in Ihrer onOpen Funktion Gebrauch SpreadsheetApp.getActive(). GetSheetByName() und den Namen Dateinamen von scriptProperties erhalten. 'var scriptProperties = EigenschaftenService.getUserProperties(); var Blattname = scriptProperties.getProperty ('Blattname'); ' – Cooper

Antwort

0

hart zu codieren, wie @Cooper gesagt haben, können Sie den Namen des neu erstellten Blatt speichern in UserProperties, dann den Code in onOpen() Methode des Skripts platzieren.

Sie es so tun können,

function onOpen(e) 
{ 
    var prop = PropertiesService.getDocumentProperties(); 
    var sheet_name = prop.getProperty(<NAME_OF_SHEET>); 
    var sp = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheet_name).activate(); 
} 
0

Wenn Sie für die Benennung Ihrer Blätter zu dem Muster ‚MM_YYYY‘ bleiben werden, wird der folgende Code aktiviert immer das Blatt mit dem Endtermin. Wenn Sie verschiedene Benennungsmuster in einem einzelnen Dokument verwenden möchten, müssen Sie den folgenden Code umgestalten, um dies zu ermöglichen.

Die onOpen() - Funktion ist einer der sogenannten einfachen Trigger in GAS, so dass jeder Code innerhalb dieser Funktion ausgeführt wird, wenn Sie das Dokument öffnen. Die Methode sort() sortiert Array-Elemente basierend auf bestimmten Kriterien. Da sort() nicht weiß, welche Kriterien Sie zum Sortieren von Sheet-Objekten verwenden möchten, müssen Sie eine Vergleichsfunktion übergeben, um die Standardfunktion zu überschreiben.

Die Komparatorfunktion analysiert Blattnamen und erstellt Datumsobjekte, indem Jahr und Datum (in dieser Reihenfolge) an den neuen Konstruktor Date() übergeben werden. Anschließend verwendet er das Ergebnis der Datumssubtraktion, um das Array "Blätter" in absteigender Reihenfolge vom höchsten zum niedrigsten Wert zu sortieren.

Schließlich nehmen Sie das erste Element des sortierten Arrays (das wäre das zuletzt erstellte Blatt) und legen Sie es als aktives Blatt fest.

function onOpen() { 

    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheets = ss.getSheets(); 

    sheets.sort(function(a,b) { 

    var arr1 = a.getName().split("_"); 
    var arr2 = b.getName().split("_"); 

    return new Date(arr2[1], arr2[0]) - new Date(arr1[1], arr1[0]); 

    }); 

if (sheets.length < 1) { 

    return; 
} 


ss.setActiveSheet(sheets[0]); 

} 
Verwandte Themen