0 votos
por (20 puntos) en Java
Buen Día.

Tengo un problema para exportar un JTable a Excel. Cuando exporto mi jtable a Excel me aparecen los datos, pero lo que yo quiero es que me aparesca el nombre de las columnas y los datos en Excel(Todo el JTable completo), estoy trabajando en java(Netbeans) y Mysql.

agrego el codigo que utilizo para exportar los datos a excel.

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controldeproduccion;

import java.io.DataOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;
import javax.swing.JTable;
//import org.apache.poi.hssf.model.Workbook;
import javax.swing.table.TableModel;
import jxl.write.WritableWorkbook;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WriteException;




/**
 *
 * @author usuario
 */
public class exporportar {
    
    //<>
    
    private File file ;
    private List<JTable> tabla;
    private List<String> nom_files;

    public exporportar(File file, List<JTable> tabla, List<String> nom_files) throws Exception {
        this.file = file;
        this.tabla = tabla;
        this.nom_files = nom_files;
        
        if(nom_files.size()!=tabla.size()) {
            
            throw new Exception("Error");
        }
    }
    
   //Metodo para exportar los Datos del JTable.
    
    public boolean export(){
        
        
        try {
            
            //flujo de salida para apuntar donde vamos a ecribir
            DataOutputStream out= new DataOutputStream(new FileOutputStream(file));
            //representa nuestro archivo excel y necesita un OutputStream para saber a donde se van a lojar los datos
               WritableWorkbook w=Workbook.createWorkbook(out);
               
                for (int index=0; index<tabla.size(); index++){
                   JTable table =tabla.get(index);
                            
            
                  
                   
                  
                   
                   //como excel tiene muchas hojas esta crea o toma la hoja
                   //coloca el nombre del "Tab" y el indice de la tabla
                   WritableSheet s=w.createSheet(nom_files.get(index),0);
                   
                    //aqui escribo los titulos obteniendolos de la tabla y aplicando una fuente(color azul y Letra tipo TAHOMA)
                   WritableFont font = new WritableFont(WritableFont.TAHOMA);
                   font.setColour(jxl.format.Colour.BLUE);
                   WritableCellFormat cellformat = new WritableCellFormat(font);
                   
                    /*for(int i = 0; i < table.getColumnCount(); i++){
                    String titulo = table.getColumnName(i);
                    Object object = titulo;
                    s.addCell(new Label(i, 0, String.valueOf(object),cellformat));             
                    
                   }
                     *
                     */
                   for(int i=0; i<table.getColumnCount(); i++){
                       for(int j=0; j< table.getRowCount(); j++ ){     
                           Object object= table.getValueAt(j, i);
                           s.addCell(new Label(i,j, String.valueOf(object)));
                           
                       }                       
                   }   
                   for(int i = 0; i < table.getColumnCount(); i++){
                    String titulo = table.getColumnName(i);
                    Object objeto = titulo;
                    s.addCell(new Label(i, 0, String.valueOf(objeto),cellformat));             
                    
                   }
                    
               }
              
              
               
               w.write();
               w.close();
               out.close();
               
               return true;
            
        }
        
        catch (IOException | WriteException e) {
            
           return false;
        }
    }
}
    
    
    
    
    

Por favor, accede o regístrate para responder a esta pregunta.

Preguntas relacionadas

0 votos
0 respuestas
0 votos
8 respuestas
preguntado por sakura (160 puntos) Ene 28, 2016 en Java
0 votos
0 respuestas
0 votos
0 respuestas
Bienvenido a Dudas de Programación, donde puedes hacer preguntas y recibir respuestas sobre los problemas más frecuentes de los lenguajes de programación, frameworks de desarrollo y bases de datos que utilices. Foro de Línea de Código

Categorías

...