IniExcelAGrilla - IniExcelAGrilla
Resumen
INTRODUCCIÓN
IniExcelAGrilla carga datos desde un archivo Excel adjunto (contenido) y devuelve una grilla (matriz) para ser utilizada en un formulario. El tipo de cada columna se interpreta en base a una “Estructura” paramétrica, y se pueden elegir qué columnas retornar (S/N) manteniendo siempre la definición de todas las columnas.
INFORMACIÓN GENERAL
Nombre del servicio: IniExcelAGrilla
Clase: IniExcelAGrillaBean
JNDI: nodum/servicios/nucleo/ini/IniExcelAGrilla
Tipo: Inicialización
Módulo: General
Repetitivo: No
Detalle
PARÁMETROS DE ENTRADA
| Parametro | Literal |
| Estructura | Definicion de columnas del Excel |
| FilasTitulo | Cant Filas a ignorar por titulos solo se consideran las filas con datos |
| IdContenido | Identificador de contenido de archivo Excel |
| MascaraFechas | Mascara a aplicar a fechas |
| NumeroHoja | Numero de Hoja con los datos |
FORMATO DE SALIDA
Devuelve una matriz Object[][] donde cada fila corresponde a una fila “útil” del Excel (no vacía y posterior a FilasTitulo).
La cantidad de columnas en la salida es igual a la cantidad de campos marcados con S/N = 'S' en la Estructura. El orden de las columnas retornadas respeta el orden definido en la Estructura.
LÓGICA DEL SERVICIO
- El servicio recibe los datos necesarios para saber qué archivo Excel usar, qué hoja leer y cómo interpretar cada columna.
- A partir de esa información, toma el archivo Excel adjunto.
Aclaracion:
El archivo adjunto que se va a pasar como parametro debe tener el siguiente formato: ${@djunto#contentId()}
Como se observa el servicio usa un control de adjunto que debe estar definido en el formulario.
- Si no se adjuntó ningún archivo, no se cargan datos. Si se adjuntaron varios archivos, el servicio informa un error, ya que solo puede procesar uno.
- El servicio lee el Excel y prepara los datos para ser mostrados en una grilla.
Durante la lectura:
- Se selecciona la hoja indicada.
- Se ignoran las filas iniciales que corresponden a títulos o encabezados.
- No se consideran filas completamente vacías.
- Cada columna del Excel se interpreta según lo definido:
- Números, textos y fechas se cargan con el formato correspondiente.
- Si un valor de texto es más largo de lo permitido, se ajusta automáticamente.
- Finalmente, se cargan en la grilla solo las columnas marcadas como visibles, respetando el orden configurado.
TIPOS DE DATOS PERMITIDOS EN LA ESTRUCTURA
En el parámetro Estructura se define cómo debe interpretarse cada columna del archivo Excel.
Cada columna se describe mediante una triple definición:
TipoDato ; Largo ; Retornar
Donde TipoDato indica cómo se leerá y convertirá el valor desde el Excel.
|
Tipo de dato |
Descripción funcional |
|
Entero |
Valores numéricos sin decimales (ej.: cantidades, números de documento). |
|
Decimal |
Valores numéricos con decimales (ej.: importes, precios, pesos). |
|
Texto |
Cadenas de texto (ej.: códigos, descripciones, observaciones). |
|
Fecha |
Fechas (ej.: fecha de emisión, vencimiento, movimiento). |
Comportamiento por tipo de dato
Entero
Lee valores numéricos sin decimales.
Si la celda está vacía, se carga 0.
Si el Excel contiene texto, el valor se interpreta como 0.
Decimal
Lee valores numéricos con decimales.
Si la celda está vacía, se carga 0.
El separador decimal depende del formato del Excel.
Texto
Lee valores de texto.
Si la celda contiene un número, se convierte automáticamente a texto.
Si el contenido supera el largo definido, el texto se trunca.
Si la celda está vacía, se carga vacío.
Fecha
Lee fechas en formato nativo de Excel.
Si la celda no es fecha, intenta interpretar el valor como texto usando la Máscara de Fechas configurada.
Si no puede interpretar la fecha, el valor queda vacío.
OBSERVACIONES
La Estructura debe tener múltiplos de 3 elementos (Tipo;Largo;S o N). Si no, el servicio falla por “Estructura no válida”.
Debe definirse la estructura completa de columnas (aunque algunas no se retornen con S o N='N').
Las filas consideradas “vacías” se ignoran (todas sus celdas son BLANK).
Para FECHA: primero intenta leer fecha nativa; si falla, intenta parsear el string con MascaraFechas.
Para TEXTO: si viene como numérico, se transforma a string; si supera Largo, se trunca.
NumeroHoja comienza en 1 (Excel hoja 1 => numeroHoja=1).
EJEMPLO
Supongamos un Excel (Hoja 1) con 1 fila de título y estas columnas:
A: CodArt (texto), B: Cantidad (entero), C: Observación (texto), D: Fecha (fecha).
|
Parámetro |
Valor |
|
IdContenido |
<ID del adjunto> |
|
FilasTitulo |
1 |
|
MascaraFechas |
dd/MM/yyyy |
|
Estructura |
Texto;20;S;Entero;10;S;Texto;50;N;Fecha;10;S |
|
NumeroHoja |
1 |
Salida esperada: una grilla con 3 columnas (CodArt, Cantidad, Fecha) y tantas filas como registros no vacíos existan en el Excel.
