
problema al leer datos de un excel (.xls)
Publicado por hugo (4 intervenciones) el 04/03/2014 21:34:06
hola a todos, soy nuevo en el foro, estoy haciendo una aplicación java que su objetivo es ordenar un listado de cheques bancarios en orden cronológico, este listado se encuentra en un archivo excel (.xls), las fechas se encuentran en una columna, los montos de los cheques en otra y así sucesivamente, el problema es que cuando lee las fechas del excel, si la fecha es por ejemplo 04/03/2014, lo lee como 04/03/0014 y yo quisiera que lo lea de la forma original porque luego tengo que volver a escribirlo en el excel, aclaro que las fechas las lee como String y las transformo a Date con simpleDateFormat para almacenarlas y poder ordenarlas cronológicamente. estoy usando la librería jxl.jar .
Alguien sabe como puedo solucionar esto?. adjunto el metodo que lee desde el excel
//origen es la dirección donde se encuentra el excel.
// ord es un objeto de la clase Ordenador que crea y almacena los cheques en un ArrayList.
public void leerArchivoExcel(String origen, Ordenador ord) {
try {
Workbook archivoExcel = Workbook.getWorkbook(new File(origen));
Sheet hoja = archivoExcel.getSheet(0); //lee la hoja indicada (0)
int numColumnas = 3; //solo trabajare con tres columnas
int numFilas = hoja.getRows();
System.out.println("Número de Hojas: " + archivoExcel.getNumberOfSheets()); //imprime el numero de hojas
System.out.println("Número de filas: " + numFilas); //imprime el numero de filas
System.out.println("Número de columnas: " + numColumnas); //imprime el numero de columnas
for (int fila = 0; fila < numFilas; fila++) { // Recorre cada fila de la hoja
Cheque cheque = ord.crearCheque(hoja.getCell(0, fila).getContents(), hoja.getCell(1, fila).getContents(),hoja.getCell(2, fila).getContents());//creo un cheque con todos sus valores
ord.add(cheque); //agrega el cheque a la colección
}
} catch (Exception e) {
System.out.println("readExcel --> " +e);
System.out.println("ERROR EN LA LECTURA DEL ARCHIVO");
}
}
con este método transforma la fecha de String a Date
//recibe la fecha como String y la retorna como Date
public final Date fechaDeStringADate(String strFecha) throws ParseException{
SimpleDateFormat formatoDelTexto = new SimpleDateFormat("dd/MM/yyyy");
Date fecha = null;
try {
fecha = formatoDelTexto.parse(strFecha);
} catch (ParseException e) {
e.printStackTrace();
}
return fecha;
}
si me pueden ayudar se los agradezco de antemano muchísimas gracias.
Alguien sabe como puedo solucionar esto?. adjunto el metodo que lee desde el excel
//origen es la dirección donde se encuentra el excel.
// ord es un objeto de la clase Ordenador que crea y almacena los cheques en un ArrayList.
public void leerArchivoExcel(String origen, Ordenador ord) {
try {
Workbook archivoExcel = Workbook.getWorkbook(new File(origen));
Sheet hoja = archivoExcel.getSheet(0); //lee la hoja indicada (0)
int numColumnas = 3; //solo trabajare con tres columnas
int numFilas = hoja.getRows();
System.out.println("Número de Hojas: " + archivoExcel.getNumberOfSheets()); //imprime el numero de hojas
System.out.println("Número de filas: " + numFilas); //imprime el numero de filas
System.out.println("Número de columnas: " + numColumnas); //imprime el numero de columnas
for (int fila = 0; fila < numFilas; fila++) { // Recorre cada fila de la hoja
Cheque cheque = ord.crearCheque(hoja.getCell(0, fila).getContents(), hoja.getCell(1, fila).getContents(),hoja.getCell(2, fila).getContents());//creo un cheque con todos sus valores
ord.add(cheque); //agrega el cheque a la colección
}
} catch (Exception e) {
System.out.println("readExcel --> " +e);
System.out.println("ERROR EN LA LECTURA DEL ARCHIVO");
}
}
con este método transforma la fecha de String a Date
//recibe la fecha como String y la retorna como Date
public final Date fechaDeStringADate(String strFecha) throws ParseException{
SimpleDateFormat formatoDelTexto = new SimpleDateFormat("dd/MM/yyyy");
Date fecha = null;
try {
fecha = formatoDelTexto.parse(strFecha);
} catch (ParseException e) {
e.printStackTrace();
}
return fecha;
}
si me pueden ayudar se los agradezco de antemano muchísimas gracias.
Valora esta pregunta


0