# QGIS Capas de hojas de cálculo

Herramienta de QGIS para cargar capas desde hojas de cálculo (*.ods, *.xls, *.xlsx)

## Descripción

Esta herramienta añade la entrada «Añadir capa de hoja de cálculo» en el menú Capa / Añadir nueva capa y un botón correspondiente en la barra de menú Capas. Estos dos enlaces abren el mismo dialogo para cargar una capa desde el archivo de la hoja de cálculo con algunas opciones:

- Seleccionar archivo

- Nombre de la capa

- Selección de la hoja

- Cabecera como primera línea

- Ignorar algunas filas

- Cargar geometría desde los campos X e Y.

Cuando el diálogo es aceptado, se crea un nuevo archivo virtual GDAL en la misma carpeta que el archivo de datos origen y el nombre de la capa, con el sufijo «.vrt», que se carga en QGIS.

Cuando se reutiliza el mismo archivo dos veces, el cuadro de diálogo carga sus valores desde el archivo «´.vrt» existente.

## Limitaciones

Debido a que GDAL/OGR carece de funcionalidades:

- Utilización de la línea de encabezamiento por fichero;

- Ignorar líneas al inicio del archivo ;

- Detección correcta final de los archivos .XLS

La herramienta utiliza la sentencia Select de SQLite con los parámetros offset y limit para extraer datos correspondientes desde el archivo base. Cuando una de estas funcionalidades se encuentra en uso, podría tener algunos efectos secundarios.

Con GDAL <= 1.11.1, la herramienta no puede cargar geometría. Con el cajetín de herramientas Geometría está bloqueado. Para obtener la versión actual de GDAL que se está utilizando, corre estos comandos en la consola de Python en QGIS.

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

Cuando abres un archivo de hoja de cálculo, GDAL/OGR intentará detectar los tipos de datos de las columnas (Fecha, Entero, Real, Texto…). Esta detección ocurre fuera de la cabecera de la herramienta e ignora las funcionalidades de línea, entonces cuando lo usas, GDAL/OGR puede estar apto para estar disponible para detectar correctamente los tipos de datos.

## Configuración

GDAL no permite definir la presencia de cabeceras de línea por capa, esta selección se realiza a través de un entorno para cada driver OGR_ODS_HEADERS, OGR_XLS_HEADERS y OGR_XLSX_HEADERS, con tres posibles valores: FORCE, DISABLE y AUTO. Para más detalles consulte los drivers de la documentación: http://www.gdal.org/drv_ods.html, http://www.gdal.org/drv_xls.html and http://www.gdal.org/drv_xlsx.html.

Puedes cambiar estos valores en la configuración de QGIS

- Abre el cuadro de diálogo «Configuraciones» / «Opciones»:

- Seleccionar «Sistema», espacio e ir a la sección Entorno

- Marcar «Usar variables personalizadas»

- Añade una nueva línea. Ejemplo:

  > Sobreescribir | OGR_ODS_HEADERS | FORCE

- Reiniciar QGIS para tomar esto en consideración

## Instalación de Desarrollo (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

- Corre QGIS y activa la herramienta SpreadsheetLayers

## Publicar una nueva versión

Primero actualiza l10n archivos:

    make tx-pull

A continuación crea una confirmación. si fuera relevante

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

Ahora actualiza: código: “El archivo SpreadsheetLayers/metadata.txt” con el número de la versión

Para un lanzamiento experimental

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

O para un lanzamiento final

    version=X.Y.Z
    experimental=True

Y crea un nuevo registro, etiquétalo y publícalo en Github

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

A continuación crea un paquete, pruébalo con tu QGIS local

    make package deploy
    qgis

Luego si se ve bien, puedes crear una etiqueta:

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

Luego, accede al repositorio de herramientas de QGIS: https://plugins.qgis.org/accounts/login/

Y carga el archivo: `dist/SpreadsheetLayers.zip` aquí: