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)