Existen dos versiones de este paquete, una para realizar la exportación desde Apex y otra para hacerlo desde Oracle XE, al final de este artículo podrán encontrar los enlaces para descargar ambos paquetes, los cuales muy gentilmente han sido puestos a disposición de todos por mi amigo Denes.
Antes de entrar en materia , debo mencionar que Apex tiene definidos procedimientos estándar para realizar la exportación de reportes a formatos variados como Excel, Word y PDF, sin embargo, para poder utilizar esas funcionalidades, se hace necesario contar con el componente BI Publisher de Oracle, el cual requiere de una licencia válida, la que a su vez tiene un costo elevado y no todos podrán contar con ella, por lo que esta alternativa que les propongo, puede resultarles de mucha utilidad.
El procedimiento para instalar el paquete y poder exportar reportes a Excel es el siguiente:
- Descargue el paquete desde el enlace que se proporciona al final de este artículo.
- Descomprima el contenido del archivo.
- Instale el paquete en el esquema del usuario que desea utilizarlo:
- Ejecute una instancia de SQL: DRIVE: sqlplus usuario/clave@conexion
- @export_to_excel_pkg.sql
- Ingrese a la aplicación Apex
- Si no cuenta con una “Página 0” definida, créela.
- Ingrese a Componentes Comunes y luego a Procesos de Aplicación
- Haga clic en el botón “Crear >” y cree un proceso con las siguientes características:
- Nombre: DOWNLOAD_EXCEL
- Secuencia: 1
- Punto: En carga: Antes de cabecera (cabecera de plantilla de página)
- Haga clic en el botón “Siguiente >”
- En el texto de proceso ingrese el siguiente segmento de código:
BEGIN
export_excel_pkg.print_report (:t_region_id, :t_excel_name, :t_page);
END;
- En el Mensaje de error escriba el mensaje que desee que aparezca en caso de que se produzca un error
- Haga clic en el botón “Siguiente >”
- Haga clic en el botón “Crear Proceso”
- Cree los siguientes elementos de aplicación: T_EXCEL_NAME, T_PAGE y T_REGION_ID:
- Ingrese a Componentes compartidos y a Elementos de aplicación
- Para cada uno de los elementos haga clic en el botón “Crear >”
- Ingrese el nombre de cada elemento
- Haga clic en el botón “Crear”
- Ingrese al reporte que desea exportar y diríjase a la sección de Regiones
- En la región del reporte deseado, haga clic en el enlace Informe
- Allí, en la sección de Exportación de Informe, seleccione “Sí” en el campo “Activar Salida de CSV”
- En el campo “Etiqueta de enlace”, ingrese el siguiente código:
123 <a href="f?p=&APP_ID.:0:&SESSION.:DOWNLOAD_EXCEL:NO::T_REGION_ID,T_EXCEL_NAME,T_PAGE:#REGION_ID#,my_report,&APP_PAGE_ID.">Exportar a Excel</a>
- Haga clic en la pestaña Atributos de Impresión y seleccione “Sí” en el campo “Activar Impresión de Informe”
- Haga clic en el botón “Aplicar Cambios”
Una vez realizado esto, en el pie de página de la región del reporte le aparecerá un enlace con la leyenda “Exportar a Excel”, el cual le permitirá exportar a Excel su reporte, sin embargo, hay algunas consideraciones a tomar en cuenta:
- Los puntos 1 al 8 del procedimiento anterior, se deben realizar una única vez para cada espacio de trabajo en que desee implementar esta funcionalidad, sin embargo, si los espacios de trabajo pertenecen a un mismo esquema (usuario de base de datos), la instalación del paquete (puntos 1 al 3) se realizan una sola vez.
- En el código del punto 12, el segmento que dice “my_report”, es el nombre con que se exportará el reporte a Excel, por tanto, lo puede cambiar a su antojo, para que este nombre refleje el contenido del reporte exportado.
- El segmento del punto 12 que dice “Exportar a Excel”, es el texto que se muestra para el enlace de exportación y también lo puede manejar a su antojo, puede poner el texto que desee, o aún incluir alguna imagen.
- No utilice el sufijo “#OWNER#” en el código del query del reporte, esto le producirá un error y no obtendrá el resultado deseado.
- El esquema (Usuario de base de datos) que ejecute este procedimiento, necesita derechos o permisos de ejecución sobre el paquete DBMS_SQL.
- El paquete NO FUNCIONARÁ para reportes del tipo “Función retornando SQL”.
- Si los reportes incluyen una cláusula “group by”, necesita modificar el paquete y utilizar la sintaxis v(‘ITEM’) en lugar de (select v(‘ITEM’) from dual)
Con esto es suficiente para que pueda exportar sus reportes a Excel, lo único que le resta por hacer es bajar el paquete, instalarlo y empezar a exportar sus reportes.
Suerte y espero tenerlos de regreso pronto con sus comentarios, preguntas y sugerencias. A continuación los enlaces de descarga de los paquetes para exportar a Excel.
Paquete exporta reportes desde Apex
Paquete exporta reportes desde Oracle XE