Spanish banks' CSB norm 43 converter to OFX, Homebank, json, yaml, xls, xlsx, ods, csv, tsv
Project description
Español
Herramientas para convertir ficheros en formato usado por múltiples bancos españoles (norma 43 del Consejo Superior Bancario [CSB43] / Asociación Española de Banca [AEB43]) a otros formatos.
csb2format
Conversor de ficheros en CSB/AEB norma 43 a otros formatos.
Formatos soportados:
OFX XML v1.0.3 & v2.1.1
HTML
JSON
ODS: hoja de cálculo OpenDocument
CSV, TSV: valores separados por coma o tabulador
XLS: hoja de cálculo de Microsoft Excel
XLSX: hoja de cálculo OOXML
YAML
Instalación:
Todos los formatos disponibles:
pip install csb43[all]
Formatos internos (ofx, ofx1, homebank) más YAML:
pip install csb43[yaml]
Formatos internos (ofx, ofx1, homebank) más formatos del paquete tablib:
pip install csb43[formats]
Opciones:
usage: csb2format [-h] [-s] [-df] [-d DECIMAL] [-e ENCODING] [--use-float] [-V] [-f {csv,dbf,df,homebank,html,json,latex,ods,ofx,ofx1,tsv,xls,xlsx,yaml}] [-v] csbFile convertedFile Convierte un fichero CSB43 a otro formato optional arguments: -h, --help show this help message and exit -v, --version show program's version number and exit csb43 arguments: csbFile fichero csb43 ('-' para entrada estándar) -s, --strict modo estricto (por defecto: False) -df, --dayfirst usa DDMMYY -día, mes, año- como formato de fecha al interpretar los datos del fichero csb43 en lugar de YYMMDD -año, mes, día- (por defecto: True) -d DECIMAL, --decimal DECIMAL establece el número de dígitos decimales a considerar en el tipo de divisa (por defecto: 2) -e ENCODING, --encoding ENCODING establece la codificación de entrada ('cp850' para fichero AEB estándar, por defecto: 'latin1') --use-float exporta cantidades monetarias usando números binarios en punto flotante como último recurso (default: False) -V, --verbose mostrar avisos de csb43 output arguments: convertedFile fichero de destino ('-' para salida estándar) -f {csv,dbf,df,homebank,html,json,latex,ods,ofx,ofx1,tsv,xls,xlsx,yaml}, --format {csv,dbf,df,homebank,html,json,latex,ods,ofx,ofx1,tsv,xls,xlsx,yaml} Formato del fichero de salida (por defecto: ofx)
Ejemplos
Convertir a formato OFX:
$ csb2format transactions.csb transactions.ofx $ csb2format --format ofx transactions.csb transactions.ofx
o bien
$ csb2format transactions.csb - > transactions.ofx
Desde una aplicación de recuperación de datos a otro fichero
$ get_my_CSB_transactions | csb2format - transactions.ofx
Convertir a hoja de cálculo XLSX (Excel):
$ csb2format --format xlsx transactions.csb transactions.xlsx
Usando cp850 como codificación de entrada:
$ csb2format --encoding cp850 --format xlsx transactions.csb transactions.xlsx
Hojas de cálculo
Los ficheros en ODS, XLS y XLSX se generan a modo de libro, conteniendo la primera hoja la información relativa a las cuentas, y las hojas siguientes conteniendo cada una los movimientos de cada cuenta.
En Python
Lee un archivo CSB43 e imprime el contenido equivalente en OFX
:::python # OFX from csb43 import csb43, ofx csbFile = csb43.File(open("movimientos.csb"), strict=False) # imprime a stdout print ofx.convertFromCsb(csbFile)
Lee un archivo CSB e imprime el contenido equivalente a CSV de Homebank
:::python # OFX from csb43 import csb43, homebank csbFile = csb43.File(open("movimientos.csb"), strict=False) # imprime a stdout for line in homebank.convertFromCsb(csbFile): print line
Lee un archivo CSB e imprime el equivalente en un archivo de formato tabular o de diccionario
:::python # OFX from csb43 import csb43, formats csbFile = csb43.File(open("movimientos.csb"), strict=False) # imprime formato 'yaml' a stdout o = format.convertFromCsb(csbFile, 'yaml') print o.yaml # escribe a archivo en formato 'xlsx' o = format.convertFromCsb(csbFile, 'xlsx') with open("movimientos.xlsx", "wb") as f: f.write(o.xlsx)
English
Tools for converting from the Spanish banks’ format CSB norm 43 (CSB43).
csb2format
Convert a CSB/AEB norm 43 file to other file formats.
Supported formats:
OFX v1.0.3 (SGML) & v2.1.1 (XML)
HTML
JSON
ODS: OpenDocument spreadsheet
CSV, TSV: comma- or tab- separated values
XLS: Microsoft Excel spreadsheet
XLSX: OOXML spreadsheet
YAML
Installing:
All the available formats:
pip install csb43[all]
Built-in formats (ofx, ofx1, homebank) plus YAML:
pip install csb43[yaml]
Built-in formats (ofx, ofx1, homebank) plus formats provided by the package tablib:
pip install csb43[formats]
Options:
usage: csb2format [-h] [-s] [-df] [-d DECIMAL] [-e ENCODING] [--use-float] [-V] [-f {csv,dbf,df,homebank,html,json,latex,ods,ofx,ofx1,tsv,xls,xlsx,yaml}] [-v] csbFile convertedFile Convert a CSB43 file to another format optional arguments: -h, --help show this help message and exit -v, --version show program's version number and exit csb43 arguments: csbFile a csb43 file ('-' for stdin) -s, --strict strict mode (default: False) -df, --dayfirst use DDMMYY as date format while parsing the csb43 file instead of YYMMDD (default: True) -d DECIMAL, --decimal DECIMAL set the number of decimal places for the currency type (default: 2) -e ENCODING, --encoding ENCODING set the input encoding ('cp850' for standard AEB file, default: 'latin1') --use-float export monetary amounts using binary floating point numbers as a fallback (default: False) -V, --verbose show csb43 warnings output arguments: convertedFile destination file ('-' for stdout) -f {csv,dbf,df,homebank,html,json,latex,ods,ofx,ofx1,tsv,xls,xlsx,yaml}, --format {csv,dbf,df,homebank,html,json,latex,ods,ofx,ofx1,tsv,xls,xlsx,yaml} Format of the output file (default: ofx)
Examples
Converting to OFX format:
$ csb2format transactions.csb transactions.ofx $ csb2format --format ofx transactions.csb transactions.ofx
or
$ csb2format transactions.csb - > transactions.ofx
From another app to file
$ get_my_CSB_transactions | csb2format - transactions.ofx
Converting to XLSX spreadsheet format:
$ csb2format --format xlsx transactions.csb transactions.xlsx
Using cp850 as the input encoding:
$ csb2format --encoding cp850 --format xlsx transactions.csb transactions.xlsx
Spreadsheets
ODS, XLS and XLSX files are generated as books, with the first sheet containing the accounts information, and the subsequent sheets containing the transactions of each one of the accounts.
Using Python
Parse a CSB43 file and print the equivalent OFX file
:::python # OFX from csb43 import csb43, ofx csbFile = csb43.File(open("movimientos.csb"), strict=False) # print to stdout print ofx.convertFromCsb(csbFile)
Parse a CSB43 file and print the equivalent HomeBank CSV file
:::python # OFX from csb43 import csb43, homebank csbFile = csb43.File(open("movimientos.csb"), strict=False) # print to stdout for line in homebank.convertFromCsb(csbFile): print line
Parse a CSB43 file and print the equivalent in a tabular or dictionary-like file format
:::python # OFX from csb43 import csb43, formats csbFile = csb43.File(open("movimientos.csb"), strict=False) # print 'yaml' format to stdout o = format.convertFromCsb(csbFile, 'yaml') print o.yaml # write 'xlsx' format to file o = format.convertFromCsb(csbFile, 'xlsx') with open("movimientos.xlsx", "wb") as f: f.write(o.xlsx)
Instalación
Usando pip
$ pip install csb43
Installing
Using pip
$ pip install csb43
Changelog
0.8
Text values are stored as string instead of bytes (thanks to Sergi Almacellas)
Warnings are raised using the ‘warnings’ module.
An encoding where control characters are different from ascii is not allowed. An exception will be raised.
csb2format: added encoding as a new parameter.
0.7
Defined installation targets: yaml and formats (thanks to Sergi Almacellas & Cédric Krier).
Updated README file (thanks to Sergi Almacellas).
Removed simplejson dependency.
Dates stored as date instead of datetime (thanks to Sergi Almacellas).
Monetary amounts are represented as Decimal instead to float in order to prevent representation and rounding issues. These fields are exported as a string by default, conversion to float is optional (thanks to Sergi Almacellas & Cédric Krier).
Added temprary dependency to openpyxl < 2.5.0 to prevent issue while trying to export to xlsx.
0.6
Fixed usage of pycountry >= 16.10.23rc1 objects (thanks to Alex Barcelo).
Package refactored to simplify the structure.
0.5
Fixed conversion to binary formats in python 2.
tablib backend supported in python 3.
N43 warnings are silenced by default.
0.4
OFX v 1.0.3 supported.
OFX Tag inv401source renamed to inv401ksource.
Unique transaction id when generating OFX file (thanks to Julien Moutte).
0.3.4
Most Spanish N43 files will use LATIN-1 encoding not pure ASCII (thanks to Julien Moutte).
Regular expression to check for account name is too limited (thanks to Julien Moutte).
Reference1 can hold non numerical data in information mode 1 and 2 (thanks to Julien Moutte).
Currency data as an inmutable list.
0.3.3
Fixed deficiencies in OFX conversion (thanks to Andrea Santambrogio). Checked XML validation against OFX2_Protocol.xsd
0.3
Compatible with Python 3 (except “tablib” dependencies)
0.2.3
Fixed shebang header of csb2format
0.2.2
csb2format adapted to pyinstaller
Executable file for Windows
0.2.1
Trivial changes
0.2
Several bugfixes
Bidirectional use of objects (file -> object, object -> file)
Added conversion to spreadsheets, dict and tabular formats (thanks to tablib)
Localization to Spanish
Sphinx documentation
0.1
Initial release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.