1.5.3 • Published 8 years ago

yamquery-excelanalizer v1.5.3

Weekly downloads
3
License
MIT
Repository
-
Last release
8 years ago

YamilQuery-ExcelAnalizer

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

Requerimientos

YamilQuery-ExcelAnalizer requiere:

Instalación

YamilQuery-ExcelAnalizer requiere Node.js v4+ para ejecutarse correctamente.

$ npm install yamquery-excelanalizer --save

Uso

El analizador de archivos utiliza archivos de configuración en formato json. A continuación un ejemplo con la estructura requerida:

example.json
{
	"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

Obtener resultados

Invocamos al analizador para obtener los resultados.

example.js
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!
})
Usar con co generator

Gracias a Promises (https://www.promisejs.org/) podemos utilizar yield de la siguiente forma:

example.js
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!
})

Test

Run npm test

1.5.3

8 years ago

1.5.2

8 years ago

1.5.1

8 years ago

1.5.0

8 years ago

1.4.9

8 years ago

1.4.8

8 years ago

1.4.7

8 years ago

1.4.6

8 years ago

1.4.5

8 years ago

1.4.4

8 years ago

1.4.3

8 years ago

1.4.2

8 years ago

1.4.1

8 years ago

1.4.0

8 years ago

1.3.9

8 years ago

1.3.8

8 years ago

1.3.7

8 years ago

1.3.6

8 years ago

1.3.5

8 years ago

1.3.4

8 years ago

1.3.3

8 years ago

1.3.2

8 years ago

1.3.1

8 years ago

1.3.0

8 years ago

1.2.9

8 years ago

1.2.8

8 years ago

1.2.7

8 years ago

1.2.6

8 years ago

1.2.5

8 years ago

1.2.4

8 years ago

1.2.3

8 years ago

1.2.2

8 years ago

1.2.1

8 years ago

1.2.0

8 years ago

1.1.9

8 years ago

1.1.8

8 years ago

1.1.7

8 years ago

1.1.6

8 years ago

1.1.5

8 years ago

1.1.4

8 years ago

1.1.3

8 years ago

1.1.2

8 years ago

1.1.1

8 years ago

1.1.0

8 years ago

1.0.9

8 years ago

1.0.8

8 years ago

1.0.7

8 years ago

1.0.6

8 years ago

1.0.5

8 years ago