Convertir fichero gnucash a hoja de cálculo (Gnumeric, OpenOffice.org, Excel)

GnuCash es una aplicación que nos permite llevar la contabilidad financiera personal o incluso para pequeños negocios. Quizás el único inconveniente es que para utilizarla correctamente se deben saber algunos conceptos contables básicos, sin embargo aprender a usarlo nos puede permitir gestionar mejor nuestros gastos/ingresos y nuestro patrimonio (por pequeño que este sea ;-)). Personalmente me resulta muy útil.

Mi interés últimamente era en ver si era posible extraer todos los datos que tengo introducidos en GnuCash hacia una hoja de cálculo, y lo he conseguido gracias al documento XLST de XSLFactory que permite transformar el fichero XML de GnuCash a un fichero XML de Gnumeric.

Los pasos han sido los siguientes:

  • Instalar Gnumeric como programa de hojas de cálculo y Xalan como procesador XSLT:
    aptitude install gnumeric gnumeric-plugins-extra xalan
    
  • Descomprimir el fichero Gnucash (supongamos que se llama finanzas.gnucash):
    mkdir conversion/
    cp finanzas.gnucash conversion/finanzas.descomprimido.gz
    cd conversion/
    gzip -d finanzas.descomprimido.gz
    
  • Editamos finanzas.descomprimido y substituimos la sección por:
    <gnc -v2 xmlns:gnc="http://www.gnucash.org/lxr/gnucash/source/src/doc/xml/io-gncxml-version-2.dtd#gnc"
    xmlns:book="http://www.gnucash.org/lxr/gnucash/source/src/doc/xml/io-gncxml-version-2.dtd#book"
    xmlns:cd="http://www.gnucash.org/lxr/gnucash/source/src/doc/xml/io-gncxml-version-2.dtd#cd"
    xmlns:act="http://www.gnucash.org/lxr/gnucash/source/src/doc/xml/account-v2.dtdt#act"
    xmlns:trn="http://www.gnucash.org/lxr/gnucash/source/src/doc/xml/transactions-v2.dtd#trn"
    xmlns:split="http://www.gnucash.org/lxr/gnucash/source/src/doc/xml/transactions-v2.dtdt#split"
    xmlns:cmdty="http://www.gnucash.org/lxr/gnucash/source/src/doc/xml/comodity-v2.dtd#cmdty"
    xmlns:ts="http://www.gnucash.org/lxr/gnucash/source/src/doc/xml/types.dtd#ts"
    xmlns:slots="http://www.gnucash.org/lxr/gnucash/source/src/doc/xml/types.dtd#slots"
    xmlns:slot="http://www.gnucash.org/lxr/gnucash/source/src/doc/xml/types.dtd#slot"
    xmlns:price="http://www.gnucash.org/lxr/gnucash/source/src/doc/xml/prices-v1.dtd#price"
    xmlns:pricedb="http://www.gnucash.org/lxr/gnucash/source/src/doc/xml/prices-v1.dtd#pricedb">
    

    Si existe algún grupo de elementos <gnc:budget>…</gnu:budget>, tendremos que borrarlo por completo. El XSLT no soporta la conversión de presupuestos o objetos de negocio (facturas, clientes, etc…).

  • Descagamos XSLT en el directorio donde tenemos el fichero GnuCash descomprimido:
    wget -c http://xslfactory.free.fr/gnucash2gnumeric_0.6.xsl
    
  • Realizamos la conversión:
    xalan -in finanzas.descomprimido -xsl gnucash2gnumeric_0.6.xsl -out finanzas.gnumeric
  • Si todo ha ido bien, ahora ya podremos abrir el fichero “finanzas.gnumeric” con la aplicación gnumeric (desde la cual podriamos exportar a otros formatos como ODS de OpenOffice.org o XLS de MS Excel)

Leave a Reply

Your email address will not be published. Required fields are marked *