Estoy utilizando la biblioteca de Apache POi HSSF para importar información en mi aplicación. El problema es que los archivos tienen algunas filas adicionales/vacías que deben eliminarse primero antes de analizar.Eliminar una fila de una hoja de Excel con POI de Apache HSSF
No hay un método HSSFSheet.removeRow(int rowNum)
. Solo removeRow(HSSFRow row)
. El problema con esto es que las filas vacías no se pueden eliminar. Por ejemplo:
sheet.removeRow(sheet.getRow(rowNum));
da una NullPointerException en las filas vacías porque getRow()
devuelve null. Además, mientras leo en los foros, removeRow()
solo borra el contenido de la celda, pero la fila todavía está allí como una fila vacía.
¿Hay alguna manera de eliminar filas (vacías o no) sin crear una hoja nueva sin las filas que quiero eliminar?
Debido a que ya he hecho un programa de análisis de archivos de Excel con formato de una tabla simple (nombres de columna en la primera fila y datos más abajo) y tengo que advertir al usuario si hay filas vacías. Además, los archivos que quiero importar ahora son de otra aplicación y tienen muchas filas adicionales (vacías o no) solo para que el archivo se vea mejor. – fmaste
OK - Sin embargo, solo diría que probablemente te servirán solo para subclasificar tu analizador existente y dejar que tu subclase ignore las filas vacías en lugar de hacer algo con ellas; De esta manera, los archivos de la otra aplicación todavía se ven bien y no tienes que morir en esos archivos. :) – delfuego
Sí. También pienso en eso. Pero el archivo tiene cosas como: una fila solo para la primera columna (la identificación) y el resto de las columnas en la fila siguiente. Solo porque se ve mejor. Necesito hacer una sola fila y eliminar una. Creo que haría una clase que contiene una hoja y una lista de índices de fila y borro los índices cuando elimino una fila. Es demasiado, pero necesito eliminar la fila, ¡no entiendo por qué no puedes eliminar la fila con esta biblioteca! – fmaste