Generar Excel a partir de un JTable

Se necesita la librería de POI para poder crear el Excel lo pueden descargar aquíAhora solo pasen como paramento un JTbale y listo!

public void GeneraExcel(JTable table) {
        private HSSFWorkbook libro = new HSSFWorkbook();
        HSSFSheet hoja = libro.createSheet();
        for (int i = 0; i < table.getRowCount()-1; i++) {
            HSSFRow fila = hoja.createRow(i);           
            if(i==0){
                for (int j = 0; j < table.getColumnCount()-1; j++) {
                    HSSFCell celda = fila.createCell(j);
                    celda.setCellValue(new HSSFRichTextString(table.getColumnModel().getColumn(j).getHeaderValue().toString()));
                }
            }else{
                for (int j = 0; j < table.getColumnCount()-1; j++) {
                    HSSFCell celda = fila.createCell(j);
                    if(table.getValueAt(i, j)!=null)
                        celda.setCellValue(new HSSFRichTextString(table.getValueAt(i, j).toString()));
                }
            }
            try {
                FileOutputStream elFichero = new FileOutputStream("holamundo.xls");
                libro.write(elFichero);
                elFichero.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

9 Comentarios

  1. hola se ve bacano, pero tengo una duda, que es libro? la variable libro....

    gracias ciao

    ResponderBorrar
  2. Ya esta actualizado faltaba la linea:

    private HSSFWorkbook libro = new HSSFWorkbook();

    Gracias por el comment

    ResponderBorrar
  3. Gracias muy util y facil de usar.

    ResponderBorrar
  4. De nada esa es la intención Saludoss!

    ResponderBorrar
  5. me genera errores al iniciar el metodo
    public GeneraExcel(JTable table)

    solo en esa linea importe todo al proyecto ¿alguna solución?

    ResponderBorrar
  6. Como puedo agregar mas celdas a las filas y las columnas ?

    ResponderBorrar
  7. la primera fila de la tabla no se exporta? sabes cual es el motivo?

    ResponderBorrar

Publicar un comentario

Artículo Anterior Artículo Siguiente