Daten in Tabellenkalkulation übernehmen

Für Auswertungen wie eine grafische Aufbereitung mit Diagrammen oder verschiedene Berechnungen gibt es unter Umständen die Anfrage nach einem Export zu einer Tabellenkalkulation wie MS Excel, OpenOffice Calc oder Google-Sheets.

Eine Möglichkeit ist, einen Export der aktuellen Daten in einem entsprechenden Format (XLSX, ODS, XLS) zu erstellen (siehe MM-Vortrag Konferenz 2023).

Eine andere und einfache Möglichkeit ist es, die Daten dynamisch abzugreifen. Dazu ist es lediglich notwendig, die Daten als Tabelle auszugeben und somit für einen Import bereit zu stellen. Das kann mit einer entsprechenden Seite der FE-Ausgabe erfolgen oder mit Aufruf eines `eigenen Routings <https://docs.contao.org/dev/framework/routing/#implementing-custom-routes`_.

Die entsprechenden Programme können diese Tabelle mit den Daten übernehmen - nicht nur einmal sondern auch je nach Typ beim Öffnen der Datei oder auch kontinuierlich nach einer vorgegebenen Zeitspanne.

Zur Vorbereitung der Datenübernahme müssen die Daten als Tabelle ausgegeben werden. Dazu kann eine eigene Seite eingerichtet werden, bei der auf die überflüssige Elemente wie Header, Footer usw. verzichtet wird. Über ein entsprechendes Template werden die Daten als Tabelle ausgegeben - z. B.

 1 <?php
 2 // templates/metamodel_pre_movies_table.html5
 3 if (count($this->data)): ?>
 4     <div class="layout_full">
 5         <table id="export">
 6             <thead>
 7             <tr>
 8                 <?php foreach ($this->data[0]['attributes'] as $attributeName): ?>
 9                     <th><?= $attributeName ?></th>
10                 <?php endforeach; ?>
11             </tr>
12             </thead>
13             <tbody>
14             <?php foreach ($this->data as $arrItem): ?>
15                 <tr>
16                     <?php foreach ($arrItem['attributes'] as $field => $strName): ?>
17                         <td><?= $arrItem['text'][$field] ?></td>
18                     <?php endforeach; ?>
19                 </tr>
20             <?php endforeach; ?>
21             </tbody>
22         </table>
23     </div>
24 <?php else : ?>
25     <?php $this->block('noItem'); ?>
26     <p class="info"><?= $this->noItemsMsg ?></p>
27     <?php $this->endblock(); ?>
28 <?php endif; ?>

In den Einstellungen des CE/FE-Moduls MM-Liste sollte keine Paginierung eingerichtet werden. Bei vielen Datensätzen kann die Laufzeit der Tabellenausgabe mit setzten der Checkbox „Keine geparsten Items über „$data“ ausgeben“ beschleunigt werden oder mit Setzen eines Index in der MM-Tabelle - mehr dazu unter Beschleunigung der Listenansicht im Backend bei vielen Datensätzen

Daten in Excel

Zur Übernahme in Excel kann die Beispieldatei verwendet werden oder man startet mit einer neuen Datei.

Im Tab „Daten“ wählt man als Datenquelle das Web.

img_excel-export_01

Im nächsten Schritt wählt man die URL - im Beispiel https://a-movie-database.metamodel.me/de/excel-connect.html.

img_excel-export_02

Nach der Verbindungsart „Anonym“ und „Verbinden“ erscheint ein Wizard, mit dem man die entsprechende Tabelle auswählen kann.

img_excel-export_03

Mit „Laden“ werden die Einstellungen abgeschlossen und die Daten sind sichtbar.

img_excel-export_04

Daten in Calc

Zur Übernahme in Calc kann die Beispieldatei verwendet werden oder man startet mit einem neuen Tabellendokument.

Unter „Einfügen“ erstellt man eine „Verknüpfung zu externen Daten“.

img_oo-export_01

Im nächsten Schritt wird die URL eingegeben - sofern sich nach der Eingabe keine Anzeige im Feld „Verfügbare Tabellen/Bereiche“ ergibt, auf den Button „…“ klicken und die URL bei „Dateiname“ einfügen sowie „Öffnen“ klicken. Anschließend die Tabelle „HTML_export“ (Tabellen-ID „export“) auswählen und Button „OK“ klicken.

img_oo-export_02

Anschließend stehen die Daten in dem Tabellenblatt zur verfügung.

img_oo-export_03

Daten in Google-Sheet

Der Import in Google-Sheet erfolgt über eine Formel - dazu in Zelle A1 folgende Formel eintragen

=importhtml("https://a-movie-database.metamodel.me/de/excel-connect.html"; "table"; 1)

Der erste Parameter ist die URL, der zweite der Typ und er dritte die Tabellennummer (beginnend mit 1). Nach der Eingabe der Formel werden die Daten eingeladen.

img_google-sheet_01