Cita:
Iniciado por crome 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/**
* Exporta un archivo de excel desde una consulta sql
* @param SQL
* @param nomArch
*/
try{
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("Resultado Filtro");
HSSFRow rowhead = sheet.createRow(0);
BaseDatos Datos = new BaseDatos(SQL,true);
for(int i = 0; i < Datos.getColumnCount(); i++){
rowhead.createCell(i).setCellValue(Datos.getColumnName(i));
}
for(int fil=1; fil<Datos.getRowCount(); fil++){
HSSFRow row = sheet.createRow(fil);
for(int col=0; col<Datos.getColumnCount(); col++){
try{
row.createCell(col).setCellValue(Datos.getValueAt(fil-1, col).toString());
row.createCell(col).setCellValue("");
}
}
}
wb.write(fileOut);
fileOut.close();
//Ejecutar archivo de excel
Runtime.
getRuntime().
exec("cmd /c start C:\\"+nomArch
+".xls");
}
(null, "Error al exportar la consulta: " + e);
}
}
Saludos...