it-swarm.com.de

Betten Sie Google Spreadsheet in Google Document ein

Ist es möglich, eine Google-Tabelle in ein Google-Dokument à la Microsoft Excel und Microsoft Word einzubetten? Wie wäre es mit einem Diagramm aus einer Tabelle?

82
ale

Ab heute (20.05.2016) bietet Google die Möglichkeit, ein Diagramm aus einer Google-Tabelle in ein Google-Dokument einzubetten. Zu diesem Zeitpunkt stellen zwei meiner drei Google-Konten die Option im Menü Insert mit einem neuen Untermenü Insert→Chart unter dem Eintrag Insert→Drawing… zur Verfügung.

Wenn Sie solche Diagramme einfügen, bleiben sie mit der ursprünglichen Tabelle verknüpft. Wenn Sie nur Tabellendaten benötigen, gibt es einen Tabellendiagrammtyp, mit dem Sie Ihre Daten als einfache Tabelle darstellen können.

In dieser Phase gibt es einige Einschränkungen (z. B. in Bezug auf die Größe des Diagramms), und das Diagramm muss bereits in der Tabelle vorhanden sein, bevor Sie es einfügen können. Dies geht jedoch in die richtige Richtung.


Verwenden Sie zum Einfügen einer Tabelle oder eines Arbeitsblatts Hinzufügen einer Tabelle aus Google Sheets , indem Sie von Sheets zu Docs kopieren und die verknüpfte Option auswählen.

Das Diagramm wird nicht live aktualisiert, wenn Sie das Quell-Arbeitsblatt ändern, während Ihr Dokument geöffnet ist. Das Dokument erkennt jedoch Änderungen und gibt Ihnen ein Update über der eingebetteten Tabelle, um die neuesten Änderungen in der Quelle anzuzeigen.

24

AFAIK, Sie können nur aus der Tabelle kopieren und in das Textdokument einfügen. Die Tabelle wird als Tabelle eingefügt, ist jedoch nicht verknüpft. Wenn Sie etwas in der Tabelle ändern, wird dies nicht im Textdokument berücksichtigt.

Natürlich würde ich mich sehr gerne irren!

32
jfoucher

Hier ist eine skriptbasierte Lösung, mit der man eine Tabelle mit Inhalten aus einem bestimmten Bereich in eine bestimmte Tabelle einfügen kann. Ich habe nicht versucht, eine Möglichkeit zum Synchronisieren von Daten in Echtzeit zu finden, da dies angesichts des potenziell großen Datenvolumens, das bei jeder Bearbeitung in die Tabelle übertragen werden müsste, nicht praktikabel erschien. Stattdessen fügt das Skript dem Dokument einen benutzerdefinierten Menüeintrag "Daten aktualisieren" hinzu.

Das Skript sollte an das Dokument gebunden sein (d. H. Mit Extras> Skripteditor im Dokumentmenü erstellt). Die Tabellenkalkulations-URL sowie das zu verwendende Blatt und der zu verwendende Bereich werden im Skript angegeben. Ersetzen Sie .getRange(rangeName) durch .getDataRange(), um alle Daten auf dem Blatt einzubetten.

Bei der ersten Ausführung der Funktion updateData wird die Tabelle am Ende des Dokuments angehängt. Bei nachfolgenden Durchläufen wird die Tabelle an Ort und Stelle aktualisiert (d. H., Wenn nach der Tabelle weiterer Text hinzugefügt wird, bleibt die Reihenfolge erhalten).

Beachten Sie, dass das Ausschneiden und Einfügen der Tabelle den Aktualisierungsprozess unterbrechen würde (das Skript würde am Ende eine neue Tabelle hinzufügen), da die eingefügte Kopie ein neues Objekt ist. Kopieren Sie stattdessen den Text um die Tabelle.

function onOpen() {
  DocumentApp.getUi()
             .createMenu('Custom')
             .addItem('Update Data', 'updateData')
             .addToUi();
}

function updateData() {
  var ssUrl = ' spreadsheet url here ';
  var sheetName = 'Sheet2';   // name of sheet to use
  var rangeName = 'A1:C3';    // range of values to include 

  var values = SpreadsheetApp.openByUrl(ssUrl)
                             .getSheetByName(sheetName)
                             .getRange(rangeName)
                             .getValues();
  var doc = DocumentApp.getActiveDocument();
  var body = doc.getBody();
  var ranges = doc.getNamedRanges('embeddedSheet-range');
  if (ranges.length == 0) {
    var table = body.appendTable(values);
  }
  else {
    tableRange = ranges[0];
    table = tableRange.getRange().getRangeElements()[0].getElement();
    var ind = body.getChildIndex(table);
    tableRange.remove();
    body.removeChild(table);
    table = body.insertTable(ind, values);
  }
  var rangeBuilder = doc.newRange();
  rangeBuilder.addElement(table);
  doc.addNamedRange('embeddedSheet-range', rangeBuilder.build());
}

Technische Hinweise

  1. Es ist auch möglich, die Daten jede Stunde zusätzlich zu manuell zu synchronisieren. Fügen Sie einfach einen zeitbasierten Trigger aus dem Ressourcen-Menü des Skripteditors hinzu, damit die Funktion updateData ausgeführt wird.

  2. Man kann dieses Skript auch so anpassen, dass es stattdessen an das Quell-Arbeitsblatt gebunden wird. Dies würde Änderungen in der Art und Weise erfordern, wie das Dokument geöffnet wird (z. B. durch eine URL), aber ansonsten ist die Logik dieselbe.

  3. Der umständliche Teil des Skripts besteht darin, das Handle der vorhandenen Tabelle im Dokument abzurufen. Dazu muss es in einem benannten Bereich platziert werden. Es ist auch viel zweckmäßiger, das Tabellenelement vollständig zu ersetzen, als mit den Einträgen einer vorhandenen Tabelle herumzuspielen. Da ein benannter Bereich unveränderlich ist, wird er auch mit der darin enthaltenen Tabelle entfernt und zusammen mit der neuen Tabelle erneut erstellt.

11
user79865

Ja, du kannst. Kopieren Sie den Inhalt eines Arbeitsblatts und fügen Sie ihn in Ihr Dokument ein. In der rechten Ecke werden Sie gefragt, ob Sie einen Link zum Arbeitsblatt erstellen möchten. In diesem Fall können Sie nach dem Bearbeiten der Tabelle auf das Aktualisierungssymbol in Ihren Dokumenten klicken, um die Änderungen in Ihr Dokument zu übernehmen.

4
Fish Monitor

Eine Alternative ist die Verwendung von Google Sites oder eines anderen Inhaltseditors, mit dem Iframes-Inhalte eingebettet werden können.

So binden Sie Google-Tabellen in eine Seite von Google Sites ein

  1. Erstellen Sie eine neue Site, oder wechseln Sie zu einer vorhandenen Site.
  2. Erstellen Sie eine neue Seite oder klicken Sie auf Bearbeiten auf einer vorhandenen Seite.
  3. Klicken Sie auf Einfügen> Laufwerk> Tabelle
  4. Wählen Sie die Tabelle aus
  5. Stellen Sie die Optionen ein
  6. Klicken Sie auf Speichern
3
Rubén