RE:Exportar Excel con JExcelApi
Publicado por
El Chanfle (1 intervención) el 20/11/2009 17:51:08
Bueno primero, getWorkbook se usa para leer archivos y por eso te sale el error debido a q el archivo (en tu caso ejemplo.xls) aun no ha sido creado, el metodo que necesitas usar para crear un archivo xls es createWorkbook("le envias la ruta con el nombre del archivo") y por cierto debes usar el tipo WritableWorkbook y no el tipo Workbook porque como te dije ese se usa para leer archivos.
En el codigo a continuacion el metodo recibe una lista de objetos SrgMStoreSales y el nombre del usuario que uso como nombre para el archivo xls.
public int ExportarReporte (List<SrgMStoreSales> salesList,String strUsuario) throws IOException
{
int i,j;
String strPath = "c:\\carpeta-prueba\\"+ strUsuario;
try
{
WritableWorkbook workbook = Workbook.createWorkbook(new File(strPath+".xls"));
WritableSheet sheet = workbook.createSheet("Reporte", 0);
Label label;
for (i=0 ; i<salesList.size() ; i++)//filas
{
for (j=0 ; j<2 ; j++){//Cantidad de columnas
if (i==0)
{
//Solo cuando es la 1era fila se agregan los nombres de las cabeceras
if(j==0){
label= new Label(j, i, "Brand"+j);
sheet.addCell(label);
}
if(j==1){
label= new Label(j, i, "P/DIV."+j);
sheet.addCell(label);
}
}
else
{
//Aki obtengo el objeto
mStoreSales = (SrgMStoreSales) salesList.get(i);
//Primera Columna BRAND
if (j == 0)
{
//System.out.println("Fila"+i+"Columna"+j+usuario.getNombres());
label= new Label(j, i, mStoreSales.getBrand());
sheet.addCell(label);
}
//PDIV
if (j == 1){
label= new Label(j, i, mStoreSales.getPDiv());
sheet.addCell(label);
}
}
}
}
//Escribe todos los label creados al workbook sino esta el write se crea el archivo vacio.
workbook.write();
workbook.close();
return 1;
}
catch (Exception e){
e.printStackTrace();
return 0;
}
}
Te deberia quedar asi:
Brand P/DIV
registro1 registro1 P/DIV
registro2 registro2 P/DIV
....
y asi hasta recorrer toda la lista. Espero haber sido de ayuda!
El Chanfle...