Hola tengo que leer un fichero excel e ir sacando los datos númericos. Este es mi codigo
Código:
public void lectura97(File ficheroabrir)
{
FileInputStream file = null;//stream de entrada del fichero
HSSFWorkbook libro = null;//objeto que tiene el libro de excel
HSSFSheet hoja;
Iterator <Row> filaIterator;
Iterator<Cell> cellIterator;
Row fila;
Cell celda;
try
{
file = new FileInputStream(fileabrir);
}
catch (FileNotFoundException ex)
{
JOptionPane.showMessageDialog(null,"no se encontró el fichero",
"Ops...Error",JOptionPane.ERROR_MESSAGE);
}
try
{
/*creo un objeto que va a ser el que contenga el libro de excel*/
libro = new HSSFWorkbook(file);
} catch (IOException ex)
{
JOptionPane.showMessageDialog(null,"Error interno E/S",
"Ops...Error",JOptionPane.ERROR_MESSAGE);
}
/*
* Obtenemos la primera pestaña a la que se quiera procesar indicando
el indice.
* Una vez obtenida la hoja excel con las filas que se quieren leer
obtenemos el iterator que nos permite recorrer cada una
de las filas que contiene.
El iterador es de tipo fila (<row>)
*/
int totalhojas=libro.getNumberOfSheets();
for(int i=0;i<totalhojas;i++)
{
hoja = libro.getSheetAt(i);
System.out.println("----HOJA : "+i+"----");
filaIterator = hoja.iterator();//creamos el cursor
// Recorremos todas las filas para mostrar el contenido de cada celda
while (filaIterator.hasNext())
{
fila = filaIterator.next();
// Obtenemos el iterator que permite recorrer todas las celdas de una fila
cellIterator = fila.cellIterator();
while (cellIterator.hasNext())
{
celda = cellIterator.next();
/* Dependiendo del formato de la celda el valor se debe mostrar
como String, Fecha, boolean, entero...*/
switch(celda.getCellType())
{
case Cell.CELL_TYPE_NUMERIC:
System.out.println(celda.getNumericCellValue());
break;
case Cell.CELL_TYPE_STRING:
System.out.println(celda.getStringCellValue());
break;
}
}
}
}
try
{
// cerramos el libro excel
libro.close();
}
catch (IOException ex)
{
JOptionPane.showMessageDialog(null,"Error cerrar el libro",
"Ops...Error",JOptionPane.ERROR_MESSAGE);
}
}
vale con esto me va recorriendo todas las hojas del excel así como todas las filas y me muestra en pantalla la fila entera.
Enfoquemos excel como una tabla. Bueno pues lo que yo necesito es coger los datos centrales de la tabla, pero no sé como posicionarme en una fila en concreto y en una celda en concreto con esta api. ¿Cómo podría hacerlo?