Ver Mensaje Individual
  #3 (permalink)  
Antiguo 14/06/2011, 10:09
Avatar de jhonmelguizo
jhonmelguizo
 
Fecha de Ingreso: enero-2008
Ubicación: Medellín - Colombia
Mensajes: 264
Antigüedad: 16 años, 10 meses
Puntos: 6
De acuerdo Respuesta: Cargando Excel con Apache POI

Cita:
Iniciado por crome Ver Mensaje
Hola a todos,

Veréis, tengo que cargar una Excel con un objeto cargado con datos que recupero de una consulta a bbdd. La excel tiene unas acciones establecidas (como generar unas gráficas a partir de los datos a través de controles ActiveX insertados). La excel lleva bastante miga por dentro, incluyendo código VBA, por lo que necesitaría cargar los datos en ella, usándola como plantilla.

He pensado en usar la librería POI de Apache para insertar los datos en la excel, pero no se como utilizarla teniendo en cuenta que debo cargar los datos en esa plantilla.

¿Alguien puede echarme un cable?.
Gracias :)
Hola crome,

Podrías hacer un archivo de excel que genere POI con los datos que traes de la bd, aparte tienes la plantilla con un código VBA que copie la hoja o los datos que están en el otro archivo generado por POI, o también lo puedes hacer todo en la misma plantilla y con el mismo POI abrir la plantilla, ubicarse en la hoja y llevar los datos.

Yo he hecho algo parecido, lo que hago es crear un archivo de excel y llevarle datos de una consulta de bd con la ayuda de POI, te muestro un ejemplo:

Código JAVA:
Ver original
  1. /**
  2.      * Exporta un archivo de excel desde una consulta sql
  3.      * @param SQL
  4.      * @param nomArch
  5.      */
  6.     public void generarArchivo(String SQL, String nomArch){
  7.         try{
  8.         HSSFWorkbook wb = new HSSFWorkbook();
  9.         HSSFSheet sheet = wb.createSheet("Resultado Filtro");
  10.         HSSFRow rowhead = sheet.createRow(0);
  11.         BaseDatos Datos = new BaseDatos(SQL,true);
  12.        
  13.         for(int i = 0; i < Datos.getColumnCount(); i++){
  14.             rowhead.createCell(i).setCellValue(Datos.getColumnName(i));
  15.         }
  16.  
  17.         for(int fil=1; fil<Datos.getRowCount(); fil++){
  18.                 HSSFRow row = sheet.createRow(fil);
  19.             for(int col=0; col<Datos.getColumnCount(); col++){
  20.                 try{
  21.                     row.createCell(col).setCellValue(Datos.getValueAt(fil-1, col).toString());
  22.                 }catch(Exception e){
  23.                     row.createCell(col).setCellValue("");
  24.                 }
  25.             }
  26.         }
  27.  
  28.         FileOutputStream fileOut = new FileOutputStream("c:\\"+nomArch+".xls");
  29.         wb.write(fileOut);
  30.         fileOut.close();
  31.  
  32.         //Ejecutar archivo de excel
  33.         Runtime.getRuntime().exec("cmd /c start C:\\"+nomArch+".xls");
  34.  
  35.         }
  36.         catch(Exception e){
  37.             javax.swing.JOptionPane.showMessageDialog
  38.                     (null, "Error al exportar la consulta: " + e);
  39.         }
  40.     }

Saludos...
__________________
¡No competimos, compartimos!...