
exportar a excel con largo de columnas
Publicado por enrique (3 intervenciones) el 17/06/2016 02:10:33
Hola: Estoy exportando registros de un jTable a Excel y funciona bien. El problema que tengo es que exporta con el ancho fijo de columnas y estéticamente debiera ser mejor. Entonces me gustaría que pudiera establecer el largo de cada columna en el Excel. Tengo el siguiente código;
Muchas gracias si alguien me puede orientar.
Saludos.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
private void btnExportarActionPerformed(java.awt.event.ActionEvent evt) {
if (Tabla_Deriva.getRowCount() > 0) {
JFileChooser chooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter("Archivos de excel", "xls");
chooser.setFileFilter(filter);
chooser.setDialogTitle("Guardar archivo");
chooser.setAcceptAllFileFilterUsed(false);
if (chooser.showSaveDialog(null) == JFileChooser.APPROVE_OPTION) {
List<JTable> tb = new ArrayList<JTable>();
List<String> nom = new ArrayList<String>();
TableColumnModel columnModel = Tabla_Deriva.getColumnModel();
tb.add(Tabla_Deriva); // Tabla
nom.add("Personas");
String file = chooser.getSelectedFile().toString().concat(".xls");
for (int i = 0; i < columnModel.getColumnCount(); i++) {
columnModel.getColumn(1).setPreferredWidth(12);
columnModel.getColumn(2).setPreferredWidth(100);
columnModel.getColumn(3).setPreferredWidth(150);
etc.. // Aqui parece que tengo problemas
}
try {
Exporter e = new Exporter(new File(file), tb, nom);
if (e.export()) {
JOptionPane.showMessageDialog(null, "Los datos fueron exportados a Excel en el directorio seleccionado", "Mensaje de Informacion", JOptionPane.INFORMATION_MESSAGE);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Hubo un error " + e.getMessage(), " Error", JOptionPane.ERROR_MESSAGE);
}
}
}else{
JOptionPane.showMessageDialog(this, "No hay datos para exportar","Mensaje de error",JOptionPane.ERROR_MESSAGE);
}
}
Muchas gracias si alguien me puede orientar.
Saludos.
Valora esta pregunta


0