# QGIS-SpreadSheetLayers

Plugin QGIS pour charger des couches depuis des fichiers feuille de calcul (*.ods, *.xls, *.xlsx)

## Description

Ce plugin ajoute une nouvelle entrée Ajouter une couche feuille de calcul dans le menu Couches / Ajouter une couche et un bouton correspondant dans la barre d’outils Couches. Ces deux liens ouvrent un même boite de dialogue avec quelques options:

- sélectionner le fichier

- nom de la couche

- sélection de la feuille

- entête en début de fichier

- ignorer des lignes

- charger la géométrie depuis les champs x et y

When dialog is accepted, it creates a new GDAL VRT file in same folder as the source data file and layer name, expanded with a .vrt suffix, which is loaded into QGIS.

Lorque l’on utilise le même fichier une seconde fois, la boite de dialogue récupère les valeurs depuis le fichier .vrt existant.

## Limitations

A cause d’un manque de fonctionnalités dans GDAL/OGR:

- configuration de la ligne d’entête pour chaque fichier ;

- possibilité d’ignorer des lignes en début de fichier ;

- détection correcte de la fin des fichiers .xls.

Le plugin utilise une requête de sélection SQLITE avec des paramètres décalage et limite pour extraire les données correspondantes. Lorsque l’une de ces fonctionnalités est utilisée, ceci peut avoir des effets de bord.

Avec GDAL <= 1.11.1, le plugin ne peut charger la géométrie. Dans ce mode dégradé, la case à cocher geometry est alors bloquée. Pour obtenir la version de GDAL en cours d’utilisation, lancez ces commandes dans la console python de QGIS:

    import osgeo.gdal
    print osgeo.gdal.__version__

Lors de l’ouverture de fichiers feuille de calcul, GDAL/OGR opère une détection automatique des types de données (Date, Entier, Réel, Chaine de caractères, …). Cette détection automatique se produit en dehors des fonctionnalités d’entête et de lignes ignorées fournies par le plugin, lorsque vous les utilisez, GDAL/OGR ne pourra donc peut-être pas détecter correctement les types de données.

## Configuration

GDAL n’autorise pas la définition de la présence de la ligne d’entête pour chaque couche, ce choix est fait à travers des variables d’environnement pour chaque pilote OGR_ODS_HEADERS, OGR_XLS_HEADERS and OGR_XLSX_HEADERS, avec trois valeurs possibles FORCE, DISABLE and AUTO. Pour plus de détail, consultez la documentation des pilotes correspondants: http://www.gdal.org/drv_ods.html, http://www.gdal.org/drv_xls.html and http://www.gdal.org/drv_xlsx.html.

Vous pouvez changer ces valeurs dans les options de QGIS:

- ouvrez la boite de dialogue Préférences / Options;

- select System tab, and go to Environment section;

- Cochez la case Utiliser des variables personnalisées.

- ajoutez une nouvelle ligne. Exemple:

  > Overwrite | OGR_ODS_HEADERS | FORCE

- redémarrer QGIS pour que la modification soit prise en compte.

## Installation pour le développement (linux)

    git clone git@github.com:camptocamp/QGIS-SpreadSheetLayers.git SpreadsheetLayers
    ln -s SpreadsheetLayers ~/.qgis2/python/plugins/
    cd SpreadsheetLayers
    make

- lancez QGIS et activez le plugin SpreadsheetLayers