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;
}
}
}