Tengo un problema con una plantilla excel.
El problema es que tengo una plantilla excel que tiene macros y tiene partes que no pueden ser modificadas, que estan protegidas para introducir texto añadir filas, columnas etc.
Lo que hago es abrir la plantilla y modifico los campos que me deja cambiar, que los datos los saco de un XML.
Por ultimo ejecuto esto para calcular los valores de los campos que son una formula. Y redirijo la salida del servlet para que se puedan descargar el excel creado.
for(int sheetNum = 0; sheetNum < objHSSFWorkbook.getNumberOfSheets(); sheetNum++) {
HSSFSheet objHSSFSheetAux = objHSSFWorkbook.getSheetAt(sheetNum);
for(Row objRow : objHSSFSheetAux) {
for(Cell objCell : objRow) {
if(objCell.getCellType() == Cell.CELL_TYPE_FORMULA) {
try{
objFormulaEvaluator.evaluateFormulaCell(objCell);
}catch(Exception e){
e.printStackTrace();
}
}
}
}
}
if (okFicheroExcel)
{
OutputStream objOutputStream = PreqResponse.getOutputStream();
PreqResponse.setHeader("Pragma", "no-cache");
PreqResponse.setContentType("application/x-download");
PreqResponse.setHeader("Content-Disposition","attachment; filename=\""+sNombreFichero+"\"");
objHSSFWorkbook.write(objOutputStream);
objOutputStream.flush();
objOutputStream.close();
}
El problema esta que al intentar abrirlo, dice este error 'Excel ha intentado recuperar las fórmulas y los valores de las celdas, pero algunos datos pueden haberse perdido.', despues de este error el excel se abre pero se pierden todos los estilos de las hojas.
No se si el problema esta en las macros o si que la hay celdas de la hoja excel que estan protegida. Pero me gustaria mucho que me ayudaran y me indicaran como controlar las macros de las hojas excel en JAVA
Muchas gracias por las molestias.