Quiero leer y escribir un archivo de Excel desde Java con 3 columnas y N filas, imprimiendo una cadena en cada celda. ¿Alguien puede darme un fragmento de código simple para esto? ¿Necesito usar alguna lib externa o Java tiene soporte incorporado para ello?
Quiero hacer lo siguiente:
for(i=0; i <rows; i++)
//read [i,col1] ,[i,col2], [i,col3]
for(i=0; i<rows; i++)
//write [i,col1], [i,col2], [i,col3]
ExcelCell.getValue()
a cada una. Por ejemplo, vea este ejemplo de lectura , también para escribir puede verificar este ejemplo.Respuestas:
Pruebe el Apache POI HSSF . Aquí hay un ejemplo sobre cómo leer un archivo de Excel:
En la página de documentación también tiene ejemplos de cómo escribir en archivos de Excel.
fuente
HSSFSheet
elgetPhysicalNumberOfRows()
método parecía devolver el número de filas no vacías (no era obvio para mí que eso era lo que significaba "físico"). Entonces, si su archivo de Excel tiene muchas filas vacías (es decir, por razones de formato), es posible que tenga más suerte al usarlorows = sheet.getLastRowNum();
. Esto también debería significar que puede eliminar el truco (ver comentario) del primer ciclo:for(int i = 0; i <= rows; i++) {
(tenga en cuenta el cambio de<
a<=
).Apache POI puede hacer esto por usted. Específicamente el módulo HSSF . La guía rápida es muy útil. Aquí le mostramos cómo hacer lo que desea: crear específicamente una hoja y escribirla.
fuente
Primero agregue todos estos archivos jar en su ruta de clase de proyecto:
Código para escribir en un archivo de Excel:
Código para leer del archivo de Excel
fuente
También puede considerar JExcelApi . Lo encuentro mejor diseñado que POI. Hay un tutorial aquí .
fuente
Hay una nueva herramienta fácil y muy interesante (10x a Kfir): xcelite
Escribir:
Leer:
fuente
Para leer un archivo xlsx, podemos usar las bibliotecas de PDI de Apache .
fuente
.csv o POI ciertamente lo harán, pero debe tener en cuenta el JExcel de Andy Khan . Creo que es, con mucho, la mejor biblioteca de Java para trabajar con Excel que existe.
fuente
y asegúrese de haber agregado los frascos poi y poi-ooxml (org.apache.poi) a su proyecto
fuente
Un simple archivo CSV debería ser suficiente
fuente
Para leer datos de libros de trabajo .xlsx necesitamos usar las clases de XSSFworkbook.
XSSFWorkbook xlsxBook = new XSSFWorkbook(fis);
XSSFSheet sheet = xlsxBook.getSheetAt(0);
etc.Necesitamos usar Apache-poi 3.9 @ http://poi.apache.org/
Para obtener información detallada con un ejemplo, visite: http://java-recent.blogspot.in
fuente
Claro, encontrará el siguiente código útil y fácil de leer y escribir. Esta es una
util
clase que puede usar en su método principal y luego puede usar todos los métodos a continuación.fuente
usando la primavera apache poi repo
fuente
Edité el más votado un poco porque no contaba bien las columnas o filas en blanco, no del todo, así que aquí está mi código, lo probé y ahora puedo obtener cualquier celda en cualquier parte de un archivo de Excel. También ahora puede tener columnas en blanco entre la columna llena y las leerá
fuente
Si el número de columna varía, puede usar esto
La dependencia maven correspondiente se puede encontrar aquí
fuente
Necesita la biblioteca de PDI de Apache y este código a continuación debería ayudarlo
fuente
Otra forma de leer / escribir archivos de Excel es usar Windmill . Proporciona una API fluida para procesar archivos Excel y CSV.
Datos de importacion
Exportar datos
fuente
No puede leer y escribir el mismo archivo en paralelo ( bloqueo de lectura-escritura ). Pero, podemos hacer operaciones paralelas en datos temporales (es decir, flujo de entrada / salida). Escriba los datos en el archivo solo después de cerrar la secuencia de entrada. A continuación se deben seguir los pasos.
Apache POI - leer / escribir el mismo ejemplo de Excel
fuente
Utilice las bibliotecas de PDI de Apache e intente esto.
fuente
Cuando se usa el apache poi 4.1.2. El tipo de celda cambia un poco. Debajo hay un ejemplo
fuente
Si necesita hacer algo más con los documentos de Office en Java, vaya a PDI como se mencionó.
Para una simple lectura / escritura de un documento de Excel como lo solicitó, puede usar el formato CSV (también como se mencionó):
fuente
Esto escribirá una JTable en un archivo separado por pestañas que se puede importar fácilmente a Excel. Esto funciona.
Si guarda una hoja de cálculo de Excel como un documento XML, también podría crear el archivo XML para EXCEL con código. He hecho esto con Word para que no tenga que usar paquetes de terceros.
Esto podría codificar la extracción de JTable y luego simplemente escribir una pestaña separada de cualquier archivo de texto y luego importar a Excel. Espero que esto ayude.
Código:
fuente