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 Ansicht 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.
Im nächsten Schritt wählt man die URL - im Beispiel https://a-movie-database.metamodel.me/de/excel-connect.html.
Nach der Verbindungsart „Anonym“ und „Verbinden“ erscheint ein Wizard, mit dem man die entsprechende Tabelle auswählen kann.
Mit „Laden“ werden die Einstellungen abgeschlossen und die Daten sind sichtbar.
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“.
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.
Anschließend stehen die Daten in dem Tabellenblatt zur verfügung.
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.