write with read poi creating create java excel jexcelapi

with - read excel java



Crear archivo de Excel en Java (9)

Quiero crear un archivo de Excel y escribir datos al igual que escribir un archivo de texto con Java. Traté de cambiar la extensión de archivo de .txt a .xls . Pero quiero letras en negrita en el archivo de Excel. ¿Cómo puedo hacer eso?

He intentado usar la API JXL, pero cada vez que tengo que crear una etiqueta, quiero agregar ninguna etiqueta. ¿No se puede O editar la fila y la columna de la tabla?


Advertencia justa sobre la generación de Excel del PDI de Apache ... (Sé que esta es una publicación anterior, pero es importante en caso de que alguien vuelva a ver esto como lo hice)

Tenía un problema de fuga de memoria, que supuestamente se resolvió para el 2006, pero que la gente todavía está experimentando recientemente. Si desea automatizar la generación de una gran cantidad de Excel (es decir, si desea generar un archivo único, grande, una gran cantidad de archivos pequeños o ambos), le recomendaría usar una API diferente. O eso, o aumentando el tamaño de la pila de JVM a proporciones absurdas, y tal vez investigando las cadenas de intercesión si sabes que en realidad no trabajarás con muchas cadenas diferentes (aunque, por supuesto, las cadenas de internados significan que si tienes una gran cantidad de diferentes cadenas, tendrás un problema de memoria completamente diferente al programa. Por lo tanto, considera eso antes de seguir esa ruta).


Cambiar la extensión de un archivo de ninguna manera cambia su contenido. La extensión es solo una etiqueta.

Si desea trabajar con hojas de cálculo de Excel utilizando Java, lea en la biblioteca de POI de Apache .


He creado una API para crear un archivo de Excel más fácil.

Crear Excel - Crear Excel desde la plantilla

Simplemente configure los valores requeridos en la creación de instancias e invoque execute (), se creará en función de su directorio de salida deseado.

Pero antes de usar esto, debe tener una plantilla de Excel que se utilizará como una plantilla del archivo de Excel recién creado.

Además, necesita el PDI de Apache en la ruta de clase de su proyecto.


Los archivos planos no permiten proporcionar metainformación.

Sugeriría escribir una tabla HTML que contenga la información que necesita y dejar que Excel la lea en su lugar. Luego puede usar las etiquetas <b> para hacer lo que pide.


Para crear una hoja de cálculo y formatear una celda utilizando un PDI , consulte el ejemplo Trabajar con fuentes y use:

font.setBoldweight(Font.BOLDWEIGHT_BOLD);

POI funciona muy bien. Hay algunas cosas que no puede hacer (por ejemplo, crear macros de VBA), pero leerá / escribirá hojas de cálculo con macros, por lo que puede crear una hoja de plantilla adecuada, leerla y manipularla con POI, y luego escribirla.


Puede utilizar Apache POI para crear archivos xls binarios nativos.

O puede usar JExcelApi que es otro, y algo ligero, por lo que puedo recordar, la biblioteca de Java para Excel.


JXLS también JXLS : recibe los datos como un Mapa y una plantilla EXCEL con la sintaxis correcta y devuelve el archivo correctamente rellenado. Los datos en cada celda deben ser un JavaBean con visibilidad pública .

No funciona si debe insertar datos en más de 1 hoja: en este caso utilicé POI .


//Find jar from here "http://poi.apache.org/download.html" import java.io.*; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFRow; public class CreateExlFile{ public static void main(String[]args) { try { String filename = "C:/NewExcelFile.xls" ; HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet("FirstSheet"); HSSFRow rowhead = sheet.createRow((short)0); rowhead.createCell(0).setCellValue("No."); rowhead.createCell(1).setCellValue("Name"); rowhead.createCell(2).setCellValue("Address"); rowhead.createCell(3).setCellValue("Email"); HSSFRow row = sheet.createRow((short)1); row.createCell(0).setCellValue("1"); row.createCell(1).setCellValue("Sankumarsingh"); row.createCell(2).setCellValue("India"); row.createCell(3).setCellValue("[email protected]"); FileOutputStream fileOut = new FileOutputStream(filename); workbook.write(fileOut); fileOut.close(); workbook.close(); System.out.println("Your excel file has been generated!"); } catch ( Exception ex ) { System.out.println(ex); } } }


File fileName = new File(".....//Fund.xlsx"); public static void createWorkbook(File fileName) throws IOException { try { FileOutputStream fos = new FileOutputStream(fileName); XSSFWorkbook workbook = new XSSFWorkbook(); XSSFSheet sheet = workbook.createSheet("fund"); Row row = sheet.createRow(0); Cell cell0 = row.createCell(0); cell0.setCellValue("Nav Value"); Cell cell1 = row.createCell(1); cell1.setCellValue("Amount Change"); Cell cell2 = row.createCell(2); cell2.setCellValue("Percent Change"); workbook.write(fos); fos.flush(); fos.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } }