error nullPointerException jakarta POI

monica
13 de Enero del 2006
hola¡¡ a ver si alguien me puede ayudar, me da error en esta aplicacion al escribir los datos recogidos de la entrada en el fichero excel que ya esta creado.
Bueno ahi va el codigo, y muchisimas gracias¡¡

public class InterfazUsuario extends JFrame
{




public HSSFWorkbook librotrabajo;
public FileInputStream ficheroEntrada;
public FileOutputStream ficheroSalida;
public static String ficheroExcel="c:/PRUEBA.xls";
private JMenuItem menuFileExit = new JMenuItem();
private JMenu menuFile = new JMenu();
private JMenuBar menuBar = new JMenuBar();
private JLabel jLabel1 = new JLabel();
private JTextField jTextField1 = new JTextField();
private JLabel jLabel2 = new JLabel();
private JTextField jTextField2 = new JTextField();
private JButton jButton1 = new JButton();

public InterfazUsuario()
{
try
{
jbInit();
}
catch(Exception e)
{
e.printStackTrace();
}

}

private void jbInit() throws Exception
{
this.setJMenuBar(menuBar);
this.getContentPane().setLayout(null);
this.setSize(new Dimension(608, 271));
menuFile.setText("File");
jLabel1.setText("Introduce Nombre");
jLabel1.setBounds(new Rectangle(15, 15, 95, 25));
jTextField1.setBounds(new Rectangle(120, 10, 225, 30));
jLabel2.setText("Introduce la edad");
jLabel2.setBounds(new Rectangle(15, 75, 105, 35));
jTextField2.setBounds(new Rectangle(120, 75, 125, 40));
jButton1.setText("añadir a BD");
jButton1.setBounds(new Rectangle(60, 125, 260, 45));
jButton1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jButton1_actionPerformed(e);
}
});
menuFileExit.setText("Exit");
menuFileExit.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
fileExit_ActionPerformed(ae);
}
});
menuFile.add(menuFileExit);
menuBar.add(menuFile);
this.getContentPane().add(jButton1, null);
this.getContentPane().add(jTextField2, null);
this.getContentPane().add(jLabel2, null);
this.getContentPane().add(jTextField1, null);
this.getContentPane().add(jLabel1, null);


//cada vez que aparezca la pantalla creo tambien una hoja de trabajo con el fichero excel



try
{
FileInputStream ficheroEntrada = new FileInputStream(ficheroExcel);
librotrabajo =new HSSFWorkbook(ficheroEntrada);
System.out.println("lectura del fichero de entrada excel conseguida");
}
catch(Exception excp){
System.out.println("error en la asigancion del fichero de entrada a el libro de trabajo.");
}
}

void fileExit_ActionPerformed(ActionEvent e)
{
System.exit(0);
}


private void jButton1_actionPerformed(ActionEvent e)
{




//asignamos el fichero de entrada excel a el libro de trabajo.
//creo un libro de trabajo en excel para el fichero prueba.
/*try
{
FileInputStream ficheroEntrada = new FileInputStream(ficheroExcel);
librotrabajo =new HSSFWorkbook(ficheroEntrada);
}
catch(Exception excp){
System.out.println("error en la asigancion del fichero de entrada a el libro de trabajo.");
}
*/




//tipo de celdas
int tipo = 0;

//leo la hoja1 de mi libro de trabajo excel.
HSSFSheet hoja =librotrabajo.getSheet("Hoja1");

//leer los datos entrada
//guardarlos en el archivo excel
String edad = jTextField2.getText();
String nombre = jTextField1.getText();

System.out.println("lectura de parametros de entrada conseguida");


//numero de filas ocupadas que sus valores no sean vacios las filas comienzan con el valor 0
//en este caso para el nombre de los atributos.
System.out.println(hoja.getFirstRowNum());
System.out.println("la primera fila ocupada es el anterior");

//obtener el numero de linea donde toca escribir en la hoja1 del libro de trabajo de excel.
int filaActual = hoja.getLastRowNum() + 1;
System.out.println("sabemos que linea de la hoja de calculo tenemos que trabajar sobre ella");



//voy a sacar las lineas totales que estan ocupadas que no esten vacios.
//int lineastotales = hoja.getPhysicalNumberOfRows();
//System.out.println ("lineas ocupadas totales del fichero son vacios"+lineastotales);


//creamos una fila en la hoja con el numero de linea que le corresponde.
HSSFRow f = hoja.createRow(filaActual);
int n_linea_creada = f.getRowNum();
System.out.println("la linea de la hoja que toca es:"+n_linea_creada);

// obtiene el numero de la ultima celda ocupada
HSSFRow ultfilaOcupada = hoja.getRow(n_linea_creada-1);
int ultceldaOcupada=ultfilaOcupada.getLastCellNum();
System.out.println("ultima celda ocupada: "+ultceldaOcupada);

//obtiene el numero de la primera fila ocupada
int priceldaOcupada= ultfilaOcupada.getFirstCellNum();
System.out.println("primera celda ocupada: "+priceldaOcupada);

//numero de celdas ocupadas totales en la ultima fila ocupada
int numceldasOcupadas=ultfilaOcupada.getPhysicalNumberOfCells();
System.out.println("numero de celdas ocupadas en la fila f"+numceldasOcupadas);



try{
//ya hemos creado la fila en la linea que nos toca escribir ahora hay
//que hacer una conversion de tipos para que todas las celdas sean del mismo tipo.
String edadSinBlancos = edad.trim();
double edadDouble=Double.valueOf(edadSinBlancos).doubleValue();
System.out.println("exito en la conversion de tipos");
//creo una celda nueva en la fila nueva para almacenar valores enteros.
HSSFCell celdanueva1 = f.createCell((short)0);
celdanueva1.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
celdanueva1.setCellValue(edadDouble);
HSSFCell celdanueva2 = f.createCell((short)1);
celdanueva2.setCellType(HSSFCell.CELL_TYPE_STRING);
celdanueva2.setCellValue(nombre);
}
catch (Exception exc)
{
System.out.println("error en la conversion de tipos"+exc.getMessage());
System.out.println("error al escribir las celdas en el fichero excel"+exc.getMessage());
}


try
{
FileOutputStream ficheroSalida=new FileOutputStream(ficheroExcel,true);
}
catch (FileNotFoundException excp)
{
System.out.println ("error en la asignacion del libro de trabajo al fichero de salida: "+excp.getMessage());
}


try{

librotrabajo.write(ficheroSalida);
//ficheroSalida.flush();
ficheroSalida.close();
System.out.println("transferencia realizada con exito");
}
catch( IOException excp)
{
System.out.println("error al escribir en el fichero excel: "+excp.getMessage());
}
}
public static InterfazUsuario inter= new InterfazUsuario();
public static void main (String arg [])
{
inter.setVisible(true);
}

}

oiane
13 de Enero del 2006
monica¡¡ ya he encontrado el error¡¡ el fichero de entrada no es un InputStream tiene que ser HSSFPOI

nos vemos, besikos