15

Ich versuche einen Link zu finden, mit dem ich eine CSV-formatierte Version meiner Google-Tabelle herunterladen kann. Zur Zeit benutze ich:Download-Link für Google Spreadsheets CSV-Export - mit mehreren Blättern

Das funktioniert gut, außer dass es nur das erste Blatt herunterladen. Mein Dokument hat mehrere Blätter. Kann jemand diesen Link so formatieren, dass er entweder alle Blätter oder ein bestimmtes Blatt herunterlädt? Etwas wie:

&sheet=all 

oder

&sheet=3 

Antwort

38

Jedes Dokument in Google Sheets unterstützt das "Diagrammtools Datasource-Protokoll", die (in einer eher planlos) erklärt in diesen Artikeln:

  1. "Creating a Chart from a Separate Spreadsheet"
  2. "Query Language Reference"
  3. "Implementing the Chart Tools Datasource Protocol"

Um ein bestimmtes Blatt als CSV-Datei herunterladen, ersetzen {key} mit der ID des Dokuments und {sheet_name} mit dem Namen des Blattes zu exportieren:

https://docs.google.com/spreadsheets/d/{key}/gviz/tq?tqx=out:csv&sheet={sheet_name}

Die Datenquelle Protokoll ziemlich flexibel ist. Verschiedene andere Optionen sind:

Antwortformat: Optionen gehören tqx=out:csv (CSV-Format), tqx=out:html (HTML-Tabelle) und tqx=out:json (JSON-Daten).

Exportteil eines Blattes: Geben Sie die Option range={range} an, wobei der Bereich ein beliebiger gültiger Bereichsspezifizierer sein kann, z. A1:C99 oder B2:F.

Führen Sie eine SQL-Abfrage aus: Geben Sie die Option tq={query} ein, z. B. tq=SELECT a, b, (d+e)*2 WHERE c < 100 AND x = 'yes'.

Textdaten exportieren: Geben Sie die Option headers=0 an, falls Ihre Felder Textdaten enthalten, da sie sonst beim Export abgeschnitten werden.

+0

Das Stück, das ich nicht finden kann, ist die API-Schnittstelle, die die Liste der Blätter/Gids für ein Dokument aufdeckt. Es ist also nicht möglich, Dokumentenblätter dynamisch zu durchlaufen. – Greg

+0

@Greg, Sie können die Liste der Blätter (Name und GID) aus der Spreadsheets-API abrufen. Die zu verwendende URL lautet "GET https://spreadsheets.google.com/feeds/worksheets/ {fileId}/private/full" und Sie müssen OAuth verwenden, es sei denn, die Tabelle ist öffentlich. – kiwidrew

+0

danke. Haben Sie gefunden, wo/wenn dies in der Drive API verfügbar ist? – Greg

4
  1. Öffnen Sie Ihr Blatt Google
  2. Klicken Sie auf die Schaltfläche "Teilen" und konfigurieren
  3. Press F12 starten Debugging-Tools in Ihrem Web-Browser und wählen Sie das "Net" Tab "Jeder mit dem Link kann sehen".
  4. Wählen Sie "Datei -> Download als -> kommagetrennte Werte .csv aktuellen Blatt" (oder welches Format Sie wollen, z.xlsx, ods, pdf, html, csv oder tsv)
  5. Kopieren Sie die URL der GET-Anforderung von der "Net" Tab

Es wird wie folgt aussehen: https://docs.google.com/spreadsheets/d/KEY/export?format=csv&id=KEY&gid=SHEET_ID

Hinweis, Der Parameter "gid" ist die Blatt-ID, die Sie am Ende der URL des geöffneten Google-Blattes finden. Referenz: https://developers.google.com/sheets/api/guides/concepts#sheet_id