Permite analizar y procesar grandes volumentes de información de archivos xls, xlsx y csv, mediante archivos de configuración JSON.
- Este analizador permite lo siguiente.
- Leer ficheros xls, xslx y csv
- Obtener datos de columnas y celdas especificando criterios o condiciones
- Aplicar filtros a los datos obtenidos y almacenar el resultado en un objeto
YamilQuery-ExcelAnalizer requiere:
YamilQuery-ExcelAnalizer requiere Node.js v4+ para ejecutarse correctamente.
$ npm install yamquery-excelanalizer --save
El analizador de archivos utiliza archivos de configuración en formato json. A continuación un ejemplo con la estructura requerida:
{
"file": "./test/xlsx/example.xlsx",
"resource_name": "EXAMPLE YamQuery-ExcelAnalizer",
"sheet_name": "usageReport (14)",
"conditions": [{
"column": 0,
"alias": "information",
"where": {
"contains": "Account "
}
}],
"results": [{
"alias": "id_information",
"column": 0,
"regex": "\\d+"
}, {
"alias": "information",
"column": 0
}, {
"alias": "jan-2016",
"column": 10,
"relative_y": 2
}, {
"alias": "feb-2016",
"column": 11,
"relative_y": 2
}, {
"alias": "mar-2016",
"column": 12,
"relative_y": 2
}, {
"alias": "abr-2016",
"column": 13,
"relative_y": 2
}]
}
Las opciones del archivo de configuración son:
- file (Opcional): Ruta del archivo a analizar
- directory (Opcional): Ruta del directorio donde se localizan los archivos a analizar
- sheet_name (Opcional): Nombre de la hoja de excel por analizar
- conditions: Objeto con criterios o condiciones necesarias que deben cumplir las celdas para obtener los resultados deseados
- column: Especifica el número de columna donde buscará dentro de la fila en la ejecución actual
- cell: Especifica una fila y columna en particular
- alias: Alias para identificar el criterio
- where: Objeto llave-valor con criterio y valor esperado o puede especificar un solo Criterio como tipo String
- contains (Object)
- isNumber (String)
- equals (Object)
- notEquals (Object)
- results: Objeto con posiciones de las columnas, celdas o rangos a obtener cuando se han cumplido todas las condiciones
- column: Especifica el número de columna donde buscará dentro de la fila en la ejecución actual
- column_range: Objecto con dos valores de rango de columnas (Se sumarán para el resultado)
- cell: Especifica una fila y columna en particular
- alias: Otorga un alias al resultado, mismo que será devuelto al final
- relative_y: Cuando el valor que requieres no se encuentra en la fila actual puedes incrementar o disminuir el indice de la fila de donde obtendrá el valor
Nota: Al menos una de las opciones file o directory deberán especificarse en el archivo de configuración
Invocamos al analizador para obtener los resultados.
analizer = require('yamquery-excelanalizer')
var configAnalizer = JSON.parse(fs.readFileSync('./config/example.json', 'utf8'))
analizer.getResults(configAnalizer).then(function(data){
console.log(data) // Your result is ready!
})
Gracias a Promises (https://www.promisejs.org/) podemos utilizar yield de la siguiente forma:
co = require('co')
analizer = require('yamquery-excelanalizer')
co(function*(){
var configAnalizer = JSON.parse(fs.readFileSync('./config/example.json', 'utf8'))
var data = yield analizer.getResults(configAnalizer)
console.log(data) // Your result is ready!
})
Run npm test