Frage

Ich möchte den Zugriff auf Google Text & Tabellen mit nur JavaScript (kein .NET, C #, Java, etc.)

Ich kam hier und war schockiert zu wissen, dass es keine API für JavaScript den Zugriff auf Google Sheets.

Bitte sagen Sie mir, wie man Zugang (Erstellen / Ändern / Löschen) Google Sheets mit JavaScript oder einem seiner Frameworks wie jQuery.

War es hilfreich?

Lösung

Ich habe eine einfache JavaScript-Bibliothek erstellt, die Tabellendaten abruft Google (wenn sie veröffentlicht wird) über die JSON api:

https://github.com/mikeymckay/google-spreadsheet-javascript

Sie können es in Aktion sehen hier:

http://mikeymckay.github.com/google-spreadsheet-javascript/ sample.html

Andere Tipps

Januar 2018 UPDATE : Wenn ich diese Frage im letzten Jahr sprach: Ich vernachlässigt eine erwähnen dritte Art und Weise den Zugriff auf Google APIs mit JavaScript, und dass von Knoten sein würde. js apps mit seinem Client-Bibliothek, so dass ich es unten hinzugefügt.

Es ist März 2017 , und die meisten Antworten hier überholt sind - die akzeptierte Antwort bezieht sich nun auf eine Bibliothek, die eine ältere API-Version. Eine aktuelle Antwort: Sie können den Zugriff die meisten Google-APIs mit JavaScript nur. Google bietet drei Möglichkeiten, dies zu tun heute:

  1. erwähnt Wie in der Antwort von Dan Dascalescu , können Sie a href verwenden <= "http: // Entwickler. google.com/apps-script“rel = "noreferrer"> Google Apps Script , die JavaScript-in-Googles-Cloud-Lösung. Das heißt, nicht-Node serverseitige JS apps außerhalb des Browsers, dass Run auf den Google-Servern.
  2. Sie können auch die Google APIs-Client-Bibliothek für JavaScript die für den Zugriff auf neuesten Google Sheets REST API auf der Client-Seite.
  3. Die dritte Möglichkeit, den Zugriff auf Google APIs mit JavaScript ist von Node.js mit apps seinen Kunden Bibliothek . Es funktioniert ähnlich der JavaScript (Client) Client-Bibliothek mit nur oben beschrieben, nur werden Sie die gleiche API von der serverseitigen Zugriff werden. Hier die Node.js Quickstart Beispiel für Bleche. Sie können die Python-basierten Videos oben zu finden sein noch nützliche, da sie zu dem API von der Server-Seite zugreifen zu können.

Wenn Sie den REST-API verwenden, müssen Sie verwalten und speichern Sie Ihre Quellcode sowie Genehmigung durchführen, indem Sie Ihren eigenen Auth-Code rollen (siehe Beispiele oben). Apps Script behandelt dies in Ihrem Namen, die die Verwaltung von Daten (Reduzierung des „Schmerzes“, wie erwähnt von Ape-inago in ihrer Antwort ) und der Code auf dem Google-Servern gespeichert. Aber Ihre Funktionalität ist beschränkt auf, welche Dienste App Script bietet und es ist älter JS (ES3 + einige ES5 verfügt und Google-Anpassungen), während die REST-API-Entwickler viel breiteren Zugriff auf die API gibt. Aber hey, es ist eine gute Wahl zu haben, nicht wahr? Zusammenfassend die OP ursprüngliche Frage zu beantworten, statt Null, Entwickler haben drei Möglichkeiten für den Zugriff von Google Tabellen mit Hilfe von JavaScript.

Hier ist der Gist.

Sie können eine Tabelle erstellen mit dem Google Sheets API . Es gibt derzeit keine Möglichkeit, eine Tabelle mit Hilfe der API (lesen Sie in der Dokumentation) zu löschen. Denken Sie an Google Docs API als die Route zu erstellen und Nachschlage-Dokumente.

Sie können hinzufügen / entfernen Arbeitsblatt in der Tabelle mit den Funktionen des Arbeitsblatt basierend Feeds .

Aktualisieren einer Tabelle erfolgt entweder über Liste basiert Feeds oder zellbasierte Feeds .

Das Lesen der Tabelle kann erreicht werden durch entweder die Google Tabellen-APIs oben genannten oder für veröffentlichte Blätter nur , mit der Google Visualization API Query language Abfrage die Daten (die Ergebnisse in CSV, JSON oder HTML-Tabellenformat zurückkehren kann).


Vergessen jQuery. jQuery ist nur dann wirklich wertvoll, wenn Sie das DOM sind durchquert. Da GAS (Google Apps Scripting) verwendet nicht den DOM jQuery wird keinen Wert, um Ihren Code hinzufügen. Halten Sie sich an Vanille.

Ich bin wirklich überrascht, dass niemand diese Informationen in einer Antwort noch zur Verfügung gestellt hat. Nicht nur können es getan werden, aber es ist relativ einfach, mit Vanille JS zu tun. Die einzige Ausnahme ist die Google Visualization API, die relativ neu ist (Stand 2011). Die Visualization API auch ausschließlich über einen HTTP-Abfrage-String URI funktioniert.

2016 Update : Der einfachste Weg ist es, das Google Apps Script-API zu verwenden, insbesondere die Tabellenkalkulations Services . Dies funktioniert für private Blätter, im Gegensatz zu den anderen Antworten, die die Tabelle erfordern veröffentlicht werden.

Dies wird Sie binden JavaScript-Code in eine Google-Tabelle lassen, und es ausführen, wenn das Blatt geöffnet wird, oder wenn ein Menüpunkt (die Sie definieren können) ausgewählt ist.

Hier ist ein Quickstart / Demo . Der Code sieht wie folgt aus:

// Let's say you have a sheet of First, Last, email and you want to return the email of the
// row the user has placed the cursor on.
function getActiveEmail() {
  var activeSheet = SpreadsheetApp.getActiveSheet();
  var activeRow = .getActiveCell().getRow();
  var email = activeSheet.getRange(activeRow, 3).getValue();

  return email;
}

Sie können auch veröffentlichen solche Skripte als Web-Anwendungen .

Es gibt eine Lösung, die nicht ein erfordert, um die Tabelle zu veröffentlichen. Allerdings ist das Blatt sein ‚Shared‘ benötigen. Genauer gesagt, muss man das Blatt in einer Art und Weise teilen, wo alle mit dem Link die Tabelle zugreifen können. Sobald dies geschehen ist, kann man die Google-Tabelle HTTP-API verwenden.

Als erstes benötigen Sie einen Google API-Schlüssel. Gehen Sie hier: https://developers.google.com/places/web-service/ get-api-key NB. Bitte beachten Sie die Sicherheitsfolgen von API-Schlüssel, die für die Öffentlichkeit zugänglich gemacht werden: https: // support.google.com/googleapi/answer/6310037

Get alle Daten für eine Tabelle - Warnung, kann dies eine Menge von Daten sein

.
https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/?key={yourAPIKey}&includeGridData=true

Get Blatt Metadaten

https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/?key={yourAPIKey}

Get eine Reihe von Zellen

https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/{sheetName}!{cellRange}?key={yourAPIKey}

Jetzt mit diesen Informationen bewaffnet, kann man AJAX verwenden, um Daten abzurufen und zu manipulieren, um sie dann in JavaScript. Ich würde empfehlen, mit axios .

var url = "https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/?key={yourAPIKey}&includeGridData=true";                                                             
axios.get(url)
  .then(function (response) {
    console.log(response);                                                                                                                                                    
  })
  .catch(function (error) {
    console.log(error);                                                                                                                                                       
  });                
  

edit: Dies beantwortet wurde, bevor die api google doc veröffentlicht wurde. Siehe Evan Plaice Antwort und Dan Dascalescu Antwort für mehr up-to-date   Informationen.

Es sieht lke können Sie, aber es ist ein Schmerz zu verwenden. Es geht um die Daten von Google-API verwenden.

http: //gdatatips.blogspot .com / 2008/12 / mit-Javascript-Client-Bibliothek-w-non.html

„Die JavaScript-Client-Bibliothek hat Hilfsmethoden für Kalender, Kontakte, Blogger und Google Finance. Aber Sie es mit fast allen Google-Daten-API für den Zugriff authentifiziert / private Feeds verwenden können. Dieses Beispiel verwendet die DocList API.“

und ein Beispiel für ein Gadget, das Schnittstellen mit Tabellen zu schreiben: http: // Code. google.com/apis/spreadsheets/gadgets/

‚JavaScript Zugriff auf Google Docs‘ wäre mühsam zu implementieren und zudem Google-Dokumentation ist auch nicht so einfach zu bekommen. Ich habe ein paar gute Links zu teilen, mit denen Sie js Zugang zu gDoc erreichen können:

  

http://code.google.com/apis/ Dokumente / docs / 3.0 / developers_guide_protocol.html # UploadingDocs

     

http://code.google.com/apis/spreadsheets/gadgets/

     

http://code.google.com/apis/gdata/docs/ js.html

     

http: //www.mail-archive. com/google-help-dataapi@googlegroups.com/msg01924.html

Kann sein, diese würden Sie helfen ..

Sorry, das ist eine lausige Antwort. Offenbar ist dies fast zwei Jahre eine Ausgabe so nicht halten Sie Ihren Atem.

Hier ist die offizielle Anfrage, dass Sie "Stern"

Wahrscheinlich die nächstgelegene Sie kommen kann, ist mit Google App Engine / Python Ihren eigenen Service rollen und das Aussetzen was Subset Sie mit Ihrer eigenen JS-Bibliothek benötigen. Obwohl ich würde gerne selbst eine bessere Lösung haben.

In diesem sich schnell verändernden Welt die meisten dieser Verbindung sind obsolet.

Jetzt können Sie verwenden Google Drive Web APIs :

Für diese Art der Sache sollten Sie Google Fusion Tables . Die API ist für diesen Zweck konzipiert.

Sie können es tun, indem Sie Sheetsee.js und tabletop.js

  1. Beispiel von git
  2. ein weiteres Beispiel

Ich bin Stein bauen helfen Sie genau das tun. Es bietet auch eine HTML einzige Lösung, sollten Sie wollen Daten aus dem Blatt gerade angezeigt werden soll. Check it out unter steinhq.com .

Sie können mit Hilfe der RGraph Blätter Stecker Google Tabellen Tabellen Daten in JavaScript lesen:

https://www.rgraph.net /canvas/docs/import-data-from-google-sheets.html

Am Anfang (vor ein paar Jahren) verließ sich dies auf einigen RGraph Funktionen seine Magie zu arbeiten -. Aber jetzt kann es funktionieren Standalone (dh nicht die RGraph gemeinsame Bibliothek erforderlich)

Einiger Beispiel-Code (in diesem Beispiel macht eine RGraph Grafik):

<!-- Include the sheets library -->
<script src="RGraph.common.sheets.js"></script>

<!-- Include these two RGraph libraries to make the chart -->
<script src="RGraph.common.key.js"></script>
<script src="RGraph.bar.js"></script>

<script>
    // Create a new RGraph Sheets object using the spreadsheet's key and
    // the callback function that creates the chart. The RGraph.Sheets object is
    // passed to the callback function as an argument so it doesn't need to be
    // assigned to a variable when it's created
    new RGraph.Sheets('1ncvARBgXaDjzuca9i7Jyep6JTv9kms-bbIzyAxbaT0E', function (sheet)
    {
        // Get the labels from the spreadsheet by retrieving part of the first row
        var labels = sheet.get('A2:A7');

        // Use the column headers (ie the names) as the key
        var key = sheet.get('B1:E1');

        // Get the data from the sheet as the data for the chart
        var data   = [
            sheet.get('B2:E2'), // January
            sheet.get('B3:E3'), // February
            sheet.get('B4:E4'), // March
            sheet.get('B5:E5'), // April
            sheet.get('B6:E6'), // May
            sheet.get('B7:E7')  // June
        ];

        // Create and configure the chart; using the information retrieved above
        // from the spreadsheet
        var bar = new RGraph.Bar({
            id: 'cvs',
            data: data,
            options: {
                backgroundGridVlines: false,
                backgroundGridBorder: false,
                xaxisLabels: labels,
                xaxisLabelsOffsety: 5,
                colors: ['#A8E6CF','#DCEDC1','#FFD3B6','#FFAAA5'],
                shadow: false,
                colorsStroke: 'rgba(0,0,0,0)',
                yaxis: false,
                marginLeft: 40,
                marginBottom: 35,
                marginRight: 40,
                key: key,
                keyBoxed: false,
                keyPosition: 'margin',
                keyTextSize: 12,
                textSize: 12,
                textAccessible: false,
                axesColor: '#aaa'
            }
        }).wave();
    });
</script>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top