Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Java => Mensaje iniciado por: BeLGaRioN en 23 Febrero 2012, 19:12 PM

Título: Intentando grabar en excel ya existente con java
Publicado por: BeLGaRioN en 23 Febrero 2012, 19:12 PM
Tengo esta clase:


public static void writeExcel(String excel_file, int fila, int columna, String value)
    {
try
        {
HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(excel_file)); //Se abre el fichero Excel
            HSSFSheet sheet = wb.getSheetAt(0); //Se obtiene la primera hoja
            HSSFRow row = sheet.getRow(fila); //Se obtiene la primera fila de la hoja
HSSFCell cell = row.getCell(columna);
cell.setCellValue(value);
        }
        catch(Exception e)
        {
            System.out.println("writeExcel ->"+e);
        }
    }


Y, cada vez que hago una llamada a ella me devuelve esto:

Citar
writeExcel ->java.lang.NullPointerException

En concreto se produce por culpa de esta instrucción:


cell.setCellValue(value);


Pero, ¿por qué? La función recibe lo que quiere recibir y aún así nada.
Título: Re: Intentando grabar en excel ya existente con java
Publicado por: Pablo Videla en 23 Febrero 2012, 19:25 PM
Y como llamas al metodo? muestranos eso.
Título: Re: Intentando grabar en excel ya existente con java
Publicado por: BeLGaRioN en 23 Febrero 2012, 19:30 PM
Esta es la llamada, pero no está ahí el problema, seguro.


writeExcel("excel.xls",0,3,"patata");
Título: Re: Intentando grabar en excel ya existente con java
Publicado por: Pablo Videla en 23 Febrero 2012, 19:34 PM
Cita de: BeLGaRioN en 23 Febrero 2012, 19:30 PM
Esta es la llamada, pero no está ahí el problema, seguro.


writeExcel("excel.xls",0,3,"patata");


Por que no mejor le das la ruta absoluta y asi verificas que realmente le estas pasando el archivo que ya existe.

cambia tu catch por esto
Código (java) [Seleccionar]

catch (Exception e) {
           System.out.println("Ha habido un error : " + e.getMessage());
           e.printStackTrace();
}

para obtener mas detallado el error.