# QGIS-SpreadSheetLayers

QGIS-Plugin, um Layer aus Tabellenkalkulationsdateien (*.ods, *.xls, *.xlsx) zu laden

## Beschreibung

Dieses Plugin fügt einen Eintrag Tabellenkalkulations-Layer hinzufügen zum Menü Layer → Layer hinzufügen und einen entsprechenden Knopf zur Layerverwaltungswerkzeugleiste hinzu. Beide öffnen denselben Dialog, um einen Layer aus einer Tabellenkalkulationsdatei mit einigen Optionen zu laden:

- Datei auswählen

- Layername

- Arbeitsblatt auswählen

- Überschriften in erster Zeile

- einige Zeilen ignorieren

- Geometrie aus X- und Y-Feldern laden

Nach Bestätigen des Dialogs wird eine neue GDAL VRT-Datei im selben Ordner wie die Quelldatei angelegt, mit dem Namen des Layers und der Erweiterung .vrt, die dann in QGIS geladen wird.

Wenn die selbe Datei wiederholt verwendet wird, lädt der Dialog die Einstellungen aus der vorhandenen .vrt-Datei.

## Einschränkungen

GDAL/OGR fehlen folgende Funktionen:

- Überschriftenzeilen je Datei verwenden

- Zeilen am Anfang der Datei ignorieren

- korrekte Dateiende-Bestimmung für .xls-Dateien

Das Plugin verwendet einen SQLITE Select-Ausdruck mit Offset- und Limit-Parametern, um die entsprechenden Daten aus der Quelldatei zu extrahieren. Wenn eine der oben genannten Funktionen verwendet werden, könnte dies Nebenwirkungen haben.

Mit GDAL-Versionen ≤ 1.11.1 kann das Plugin keine Geometrie laden. Zur Berücksichtigung des eingeschränkten Funktionsumfangs wird das Kontrollkästchen „Geometrie“ gesperrt. Um die verwendete GDAL-Version herauszufinden, diese Befehle in der QGIS Python-Konsole ausführen:

    import osgeo.gdal
    print(osgeo.gdal.__version__)

Wenn GDAL/OGR versucht, eine Tabellenkalkulationsdatei zu öffnen, versucht es, den Datentyp der Spalten (Datum, Ganzzahl, Gleitkommazahl, Text, …) zu erkennen. Diese automatische Erkennung findet außerhalb der Funktionen des Plugins zu Überschriften und zum Ignorieren von Zeilen statt. Deshalb wird GDAL/OGR die Datentypen nicht korrekt bestimmen können, wenn diese Funktionen verwendet werden.

## Konfiguration

GDAL ermöglicht es nicht, die Anwesenheit einer Überschriftenzeile je Layer festzulegen. Diese Auswahl wird durch Umgebungsvariablen für jeden Treiber OGR_ODS_HEADERS, OGR_XLS_HEADERS und OGR_XLSX_HEADERS vorgenommen, wobei die Werte FORCE, DISABLE und AUTO zur Verfügung stehen. Einzelheiten finden sich din der jeweiligen Treiber-Dokumentation unter http://www.gdal.org/drv_ods.html, http://www.gdal.org/drv_xls.html und http://www.gdal.org/drv_xlsx.html.

Sie können diese Werte in den QGIS-Einstellungen ändern:

- Dialog Einstellungen → Optionen öffnen

- Reiter System auswählen und zum Abschnitt Umgebung gehen

- „Benutzerdefinierte Umgebungsvariablen verwenden“ ankreuzen

- eine neue Zeile hinzufügen, zum Beispiel:

  > Overwrite | OGR_ODS_HEADERS | FORCE

- QGIS neustarten, damit dies wirksam wird.

## Entwickler-Installation (Linux)

    git clone git@github.com:camptocamp/QGIS-SpreadSheetLayers.git SpreadsheetLayers
    cd SpreadsheetLayers
    ln -s ${PWD}/SpreadsheetLayers ~/.local/share/QGIS/QGIS3/profiles/default/python/plugins
    make

- QGIS ausführen und SpreadsheetLayers-Plugin aktivieren.

## Release a new version

First update l10n files:

    make tx-pull

Then create a commit if relevant:

    git add -p .
    git commit -m 'Update l10n'

Now update `SpreadsheetLayers/metadata.txt` file with the version number.

For an experimental release:

    version=X.Y.Z-alpha+build
    experimental=False

Or for a final release:

    version=X.Y.Z
    experimental=True

And create a new commit, tag, and push on GitHub:

    git add -p .
    git commit -m 'Release version ...'
    git push origin master

Then create the package and test it with you local QGIS:

    make package deploy
    qgis

Then, if everything looks fine, you can create a tag:

    git tag X.Y.Z
    git push origin X.Y.Z

Then log in to QGIS plugins repository: https://plugins.qgis.org/accounts/login/

And upload the file `dist/SpreadsheetLayers.zip` here: https://plugins.qgis.org/plugins/SpreadsheetLayers/