Vuelta a el error null¡
Tengo este código para crear un fichero csv, me da error a la hora de escribir en el fichero csv creado, me da null, como si no lo encontrase, seguro que es algo de los try, pero no consigo encontrar el error.
Te paso el código por si acaso lo ves tu, muchas gracias.
public FileWriter EscribirSalida=null;
public int contadorvariables=0;
public String delimitadorcoma=",";
public int ultima_linea;
public int primera_linea;
public HSSFRow filaExcel=null;
public HSSFCell celdaExcel=null;
public int tipocelda;
public double contenidoCelda0=0;
public String contenidoCelda;
int filasCSV=0;
private void jButton3_actionPerformed(ActionEvent e)
{
//ClassOperacionesPaciente op=new ClassOperacionesPaciente();
//op.ConversorCSV(ruta);
//System.out.println("enlace con el metodo conversor csv con exito");
//funcion que convierte el fichero excel en csv
//voy a crear el fichero en csv para excel pero voy a utilizar los metodos de jakarta poi
try{
File ficheroSalida= new File ("c:/salida.csv");
FileWriter EscribirSalida= new FileWriter (ficheroSalida);
System.out.println("exito en la creacion del fichero csv");
POIFSFileSystem ficheroEntrada = new POIFSFileSystem (new FileInputStream (ruta));
System.out.println("exito en la lectura del fichero excel");
HSSFWorkbook librotrabajo = new HSSFWorkbook (ficheroEntrada);
System.out.println("exito en la lectura del libro de trabajo");
HSSFSheet hojaleer = librotrabajo.getSheet("Hoja1");
System.out.println("apertura e inicializacion de la hoja de calculo y libro con exito");
primera_linea=hojaleer.getLastRowNum();
System.out.println("primera linea ocupada es "+primera_linea);
ultima_linea=hojaleer.getLastRowNum();
System.out.println("ultima linea ocupada del fichero excel "+ultima_linea);
for(int fila=0;fila<=ultima_linea;fila++)
{
for(int colum=0;colum<=26;colum++){
filaExcel=hojaleer.getRow(fila);
if(filaExcel!=null){
celdaExcel=filaExcel.getCell((short)colum);
if (celdaExcel!=null){
tipocelda=celdaExcel.getCellType();
System.out.println("exito en la lectura de tipo de la celda");
}
switch(tipocelda){
case 0://la celda es de tipo numerico,leer el contenido de la celda
contenidoCelda0=celdaExcel.getNumericCellValue();
String contenidoCelda=Double.toString(contenidoCelda0);
case 1://la celda es de tipo string,leer el contenido de la celda
contenidoCelda=celdaExcel.getStringCellValue();
}//fin switch
//pasamos a escribir el contenido de la celda en el fichero de salida csv
if (contadorvariables!=26)
{
//try{
EscribirSalida.write(contenidoCelda);
EscribirSalida.flush();
EscribirSalida.write((String)delimitadorcoma);
EscribirSalida.flush();
System.out.println("exito en la escritura del fichero csv sin ser el ultimo");
contadorvariables++;
//}
//catch(Exception ex)
//{
//System.out.println("Error en la escritura del fichero de salida sin ser el ultimo "+ex.getMessage());
//}
}
else
{
try{
EscribirSalida.write(contenidoCelda);
EscribirSalida.flush();
System.out.println("exito en la escritura del fichero csv cuando es el ultimo");
contadorvariables=0;
}
catch(Exception ex)
{
System.out.println("error en la escritura del fichero csv cunado es el ultimo");
}
}
}//fin if fila null
}//fin del if
}//fin for atributos(columnas)
}//fin for filas
catch(Exception ex)
{
System.out.println("error en la creacion del fichero csv");
System.out.println("error en la lectura del fichero excel");
System.out.println("error en la lectura del libro de trabajo y en la hoja");
}
if(EscribirSalida!=null)
{
try{
EscribirSalida.close();
}
catch(Exception ex)
{
System.out.println("error en el cierre del fichero csv");
}
}
}//fin boton
}
//fin clase
Te paso el código por si acaso lo ves tu, muchas gracias.
public FileWriter EscribirSalida=null;
public int contadorvariables=0;
public String delimitadorcoma=",";
public int ultima_linea;
public int primera_linea;
public HSSFRow filaExcel=null;
public HSSFCell celdaExcel=null;
public int tipocelda;
public double contenidoCelda0=0;
public String contenidoCelda;
int filasCSV=0;
private void jButton3_actionPerformed(ActionEvent e)
{
//ClassOperacionesPaciente op=new ClassOperacionesPaciente();
//op.ConversorCSV(ruta);
//System.out.println("enlace con el metodo conversor csv con exito");
//funcion que convierte el fichero excel en csv
//voy a crear el fichero en csv para excel pero voy a utilizar los metodos de jakarta poi
try{
File ficheroSalida= new File ("c:/salida.csv");
FileWriter EscribirSalida= new FileWriter (ficheroSalida);
System.out.println("exito en la creacion del fichero csv");
POIFSFileSystem ficheroEntrada = new POIFSFileSystem (new FileInputStream (ruta));
System.out.println("exito en la lectura del fichero excel");
HSSFWorkbook librotrabajo = new HSSFWorkbook (ficheroEntrada);
System.out.println("exito en la lectura del libro de trabajo");
HSSFSheet hojaleer = librotrabajo.getSheet("Hoja1");
System.out.println("apertura e inicializacion de la hoja de calculo y libro con exito");
primera_linea=hojaleer.getLastRowNum();
System.out.println("primera linea ocupada es "+primera_linea);
ultima_linea=hojaleer.getLastRowNum();
System.out.println("ultima linea ocupada del fichero excel "+ultima_linea);
for(int fila=0;fila<=ultima_linea;fila++)
{
for(int colum=0;colum<=26;colum++){
filaExcel=hojaleer.getRow(fila);
if(filaExcel!=null){
celdaExcel=filaExcel.getCell((short)colum);
if (celdaExcel!=null){
tipocelda=celdaExcel.getCellType();
System.out.println("exito en la lectura de tipo de la celda");
}
switch(tipocelda){
case 0://la celda es de tipo numerico,leer el contenido de la celda
contenidoCelda0=celdaExcel.getNumericCellValue();
String contenidoCelda=Double.toString(contenidoCelda0);
case 1://la celda es de tipo string,leer el contenido de la celda
contenidoCelda=celdaExcel.getStringCellValue();
}//fin switch
//pasamos a escribir el contenido de la celda en el fichero de salida csv
if (contadorvariables!=26)
{
//try{
EscribirSalida.write(contenidoCelda);
EscribirSalida.flush();
EscribirSalida.write((String)delimitadorcoma);
EscribirSalida.flush();
System.out.println("exito en la escritura del fichero csv sin ser el ultimo");
contadorvariables++;
//}
//catch(Exception ex)
//{
//System.out.println("Error en la escritura del fichero de salida sin ser el ultimo "+ex.getMessage());
//}
}
else
{
try{
EscribirSalida.write(contenidoCelda);
EscribirSalida.flush();
System.out.println("exito en la escritura del fichero csv cuando es el ultimo");
contadorvariables=0;
}
catch(Exception ex)
{
System.out.println("error en la escritura del fichero csv cunado es el ultimo");
}
}
}//fin if fila null
}//fin del if
}//fin for atributos(columnas)
}//fin for filas
catch(Exception ex)
{
System.out.println("error en la creacion del fichero csv");
System.out.println("error en la lectura del fichero excel");
System.out.println("error en la lectura del libro de trabajo y en la hoja");
}
if(EscribirSalida!=null)
{
try{
EscribirSalida.close();
}
catch(Exception ex)
{
System.out.println("error en el cierre del fichero csv");
}
}
}//fin boton
}
//fin clase
1 respuesta
Respuesta de jruben
1