0

Ich suche einen Ansatz, mit dem ich dem Nutzer ein maßgeschneidertes Google Sheet-Dashboard auf Basis einer ID bereitstellen kann, die über URL eingegeben oder übertragen wird.Google Sheet Bespoke Berichterstattung: Filter & Datenschutz

Zur Erläuterung: Die Rohdaten befinden sich ab sofort in einem Google Sheet-Hauptformular und werden verarbeitet und in einem anderen Google Sheet-Dashboard zusammengefasst, das eine ID als Filter für die Rohdaten enthält mit dieser bestimmten ID und Benutzer verbunden - das funktioniert.

Allerdings sollte jeder Benutzer nur ihre ID eingeben und ihre Zusammenfassung sehen. Im Moment haben alle Benutzer Zugriff auf dasselbe öffentliche Blatt und die Möglichkeit des parallelen Zugriffs ist problematisch.

Wie kann ich einzelne Tabellen (eine pro Benutzer) erstellen, die auf einer Vorlage basieren? Ist dies mit der Standardfunktionalität oder Apps Script möglich? Jeder Rat wird sehr geschätzt, danke!

+0

Sie wären besser dran, eine Apps Script Web App zu erstellen. Es scheint, dass Sie bereits ein Dashboard haben. Ist das Dashboard mit HTML erstellt? Wenn dies der Fall ist, könnten Sie wahrscheinlich einige davon in der Web App wiederverwenden. Bei mehreren Personen kann dieselbe Web-App geöffnet sein, ohne dass ein Benutzer von einem anderen Benutzer etwas sieht. Jede offene Instanz wird für diese Person eindeutig sein. Verwenden Sie zum Erstellen einer Webanwendung eine eigenständige Anwendungsscriptdatei. Momentan kann der Google Apps Script-Code an Ihre Tabelle gebunden sein. –

+0

Danke Sandy! Kannst du das bitte näher erläutern: Wie würde das Apps Script aussehen? Derzeit ist das Dashboard nur Google Sheet, das nach einer ID fragt, mit der die zugrunde liegenden Daten gefiltert werden. Müsste ich ein Dashboard in Google Apps Script erstellen? Gibt es eine einfache Möglichkeit, dies mithilfe der Google Tabellen-Benutzeroberfläche zu erstellen und diese auf das Web App-Dashboard zu übertragen? Danke noch einmal! –

+0

Für das, was ich vorschlage, müssten Sie HTML, clientseitiges JavaScript und CSS verwenden. Möglicherweise müssen Sie lernen, wie Sie eine Tabelle in HTML erstellen, um die Ergebnisse aufzulisten. Sie könnten etwas wie Awesome Tables verwenden. Im Folgenden finden Sie einen Link zur Apps Script-Dokumentation für Web Apps: [Link - Web Apps] (https://developers.google.com/apps-script/guides/web) –

Antwort

0

Dies ist eine Option, die Sie versuchen können, können Sie die E-Mail-ID des Benutzers erhalten, die wie so die Google-Tabelle wird geöffnet:

function onOpen(e) { 

    var email = Session.getEffectiveUser().getEmail() 
    var ui = SpreadsheetApp.getUi() 
    ui.alert(email) 
    //doSomethingSpecificBasedOnEmail(email) call function that fliters data based on email ID 
} 

Hinweis: Es gibt nur wenige Nuancen Session.getEffectiveUser() verwenden. Basierend auf den Berechtigungen und Sicherheitseinstellungen können Sie einen leeren Benutzer/eine leere E-Mail erhalten.

Zweite Option: Wenn die E-Mail-ID keine Option ist und Sie mit der Eingabe einer ID für den Zugriff auf die Daten einverstanden sind. Dieser Code fragt nach einer ID und erstellt eine Kopie des Arbeitsblatts namens Template und legt den Wert von A1 als ID fest. Das Blatt kann dann die ID verwenden, um ID-spezifische Daten zu erhalten und Plots zu erstellen.

function onOpen(){ 
    var ui = SpreadsheetApp.getUi(); 
var response = ui.prompt('Get ID:'); 

// Process the user's response. 
if (response.getSelectedButton() == ui.Button.OK) { 
    var id = response.getResponseText(); 
    var ss = SpreadsheetApp.getActive() 
    var lookupSheet = ss.getSheetByName(id) 
    if(lookupSheet == null){ 
    var template = ss.getSheetByName("Template") 
    var newSheet = template.copyTo(ss) 
    newSheet.setName(id) 
    newSheet.getRange(1,1).setValue(id) 
    newSheet.activate() 
    } else 
    { 
    lookupSheet.activate 
    } 
} else { 
    Logger.log('The user clicked the close button in the dialog\'s title bar.'); 
} 
} 

Ein Beispiel hierfür finden Sie hier: https://docs.google.com/spreadsheets/d/1RPHUGKi7u9jJVc-3xCaYlrZ8kaHWvpl6gPZxUL1g32Y/edit?usp=sharing

Hinweis: Man kann zwar jedes andere Blatt sehen, die ich auf der Grundlage Ihrer Post übernehmen ist kein Thema. Wenn dies jedoch nicht der Fall ist, verwenden Sie am besten das Google Web App-Skript.

+0

Also würden alle Benutzer eine E-Mail-Adresse in der gleichen Domäne oder von Google benötigen? Wenn ja, dann begrenzt es das, was ich erreichen möchte. Andere Ideen? –

+0

Nun aktualisiert die Antwort mit einer neuen Methode, hoffe, dass es besser geht –