Su objetivo es muy simple:
Poder tipar un archivo plano (fijo o delimitado) por medio de una clase que mapea cada registro para que posteriormente se puede leer o escribir como un arreglo tipado tipo .Net.
Esta librería también tiene soporte para importar y exportar datos desde diferentes tipos de almacenamientos como Excel, Access, SQL Server.
Descarga
Las instrucciones y libreria de descarga se encuentra en FileHelpers v 2.0, donde su autor Marcos Meli, también describe ejemplos de como usarla. Es importante anotar que hay versiones más recientes de personas que han aportado a la librería con versiones para .Net 4.0 y que se pueden descargar en teamcity.codebetter.com
Guía Simple de Uso
Acá ilustro de manera simple, la forma de como usar la librería:
1. Importar al projecto .Net la libreria (s) correspondientes:
- Si solo se va importar archivos planos (fijos o delimitados) y no requiere leer o escribir archivos Escel, SOLO SE NECESITA:
FileHelpers.dll
FileHelpers.xml (por documentación de la librería)
- Para la característica Excel DataLink que usa NPOI library (implementación nativa, RECOMENDADA – No requiere que se tenga instalado Excel):
FileHelpers.ExcelNPOIStorage.dll
- Para la característica de Excel DataLink que usa interoperabilidad (Excel debe estar instalado, NO RECOMENDADO):
FileHelpers.ExcelStorage.dll
Más información en: http://www.filehelpers.com
2. Definir la clase que mapeara los campos de la fuente a importar en el orden tal como se esperan
El siguiente es un ejemplo de una definición de esta clase.
En el cual podemos visualizar que por medio de lenguaje declarativo podemos definir los atributos de la importación, entre los que están el delimitador en caso que aplicara, los tipos de datos de los tributos, la posibilidad de eliminar espacios en blanco, definir que campos pueden ser nulos y en caso de serlo, definir un valor por defecto, etc. Para ver mayor información de estos atributos consultar el item Attributes List de la página http://filehelpers.sourceforge.net/
3. Finalmente usar FileHelperEngine para leer la fuente de datos, como un arreglo de la clase definida en el paso 1 o poder exportar los campos requeridos según la necesidad.
En este paso se define la forma como se va a importar el archivo o fuente de datos, se valida si hay errores que no cumplan los atributos esperados y denifidos en el paso 2 y se inicia con la lectura de los registros validos en un arreglo tipado cuya definición es la misma de la clase del paso 2.
Gracias Marcos por tu aporte y espero les pueda ayudar a sus próximos desarrollos; mayor información en http://filehelpers.sourceforge.net/ .