Una libreria a la que le encontre mucho uso, y me saco de apuro en innumerables ocasiones es Jakarta POI .
Una API de Jakarta destinada al manejo de archivos Excels. Muy sencilla de utilizar, con mucha potencia, permite crear un nuevo archivo, leer uno ya existente, no solo crear hojas de calculo con datos sino con formulas, formato, graficos en ella.
Vean la guia rapida para ver lo sencillo que es utilizar este libreria.
import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.border.*;
import javax.swing.event.*;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.hssf.record.*;
import org.apache.poi.hssf.model.*;
import org.apache.poi.hssf.util.*;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
public class EjemploPOI extends JFrame {
public EjemploPOI() {
setTitle("Ejemplo");
JPanel panel = new JPanel(new BorderLayout());
panel.add(getPanelBotones(),BorderLayout.NORTH);
panel.add(getPanelTabla(),BorderLayout.CENTER);
setContentPane(panel);
setVisible(true);
pack();
}
private JTable tabla;
private DefaultTableModel model;
/*
* Construye el panel con la tabla de datos
*/
private JScrollPane getPanelTabla() {
String[] columnas = { "Mes","Cantidad" };
Object[][] datos = {
{ "Enero","10" },
{ "Febrero","23" },
{ "Marzo","14" },
{ "Abril","26" }
};
model = new DefaultTableModel(datos,columnas);
tabla = new JTable(model);
JScrollPane scrol = new JScrollPane(tabla);
return scrol;
}
/*
* Construye el panel con el boton
*/
private JPanel getPanelBotones() {
JButton btnExportar = new JButton("Exportar");
ExportarListener listener = new ExportarListener();
btnExportar.addActionListener(listener);
JPanel panel = new JPanel(new FlowLayout());
panel.add(btnExportar);
return panel;
}
public static void main(String[] args) {
EjemploPOI frame = new EjemploPOI();
}
public class ExportarListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
int rows = model.getRowCount();
int columnas = model.getColumnCount();
//Creamos el libro
HSSFWorkbook wb = new HSSFWorkbook();
//Creamos la hoja de calculo, con el nombre "Archivo"
HSSFSheet sheet1 = wb.createSheet("Archivo");
for(int i=0;i< rows;i++) {
//Se crea la fila dentro de la hoja de calculo
HSSFRow row = sheet1.createRow((short)(i+1));
for(int j=0;j < columnas;j++) {
//Se recupera el valor de la tabla
String dato = model.getValueAt(i,j).toString();
//Se crea la celda dentro de la fila
HSSFCell celda = row.createCell((short) j);
//Asignamos el valor a la celda
celda.setCellValue(dato);
}
}
try {
FileOutputStream fileOut = new FileOutputStream("ejemplo.xls");
wb.write(fileOut);
fileOut.close();
JOptionPane.showMessageDialog(new JFrame(),"Se exporto con exito",
"Completo",JOptionPane.INFORMATION_MESSAGE);
} catch(IOException e1) {
System.err.println("Se produjo un error");
System.err.println(e1.getMessage());
}
}
}
}
Busquen en el mismo directorio donde compilaron el archivo, van a ver que se creo un archivo llamado ejemplo.xls.
No hay comentarios:
Publicar un comentario