//package tableDemo;
/*
* TableToExcelDemo.java
*/
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import javax.swing.table.*;
import jxl.*;
import jxl.write.*;
import jxl.write.Label;
import jxl.write.Number;
public class TableToExcelDemo extends JFrame {
public TableToExcelDemo() {
super("Table to Excel Demo");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 300);
setLocationRelativeTo(null);
table = new JTable();
toolbar = new JToolBar();
btToExcel = new JButton("To Excel");
table.setModel(new DefaultTableModel(
new Object [][] {
{new Integer(1), new Integer(11), new Integer(111), "aaaa"},
{new Integer(2), new Integer(22), new Integer(222), "bbbb"},
{new Integer(3), new Integer(33), new Integer(333), "cccc"},
{new Integer(4), new Integer(44), new Integer(444), "dddd"}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
) {
Class[] types = new Class [] {
Integer.class, Integer.class, Integer.class, String.class
};
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
});
getContentPane().add(new JScrollPane(table), BorderLayout.CENTER);
toolbar.add(btToExcel);
getContentPane().add(toolbar, BorderLayout.NORTH);
btToExcel.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btToExcelActionPerformed(evt);
}
});
}
private void btToExcelActionPerformed(ActionEvent evt) {
try {
toExcel();
} catch (WriteException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
private void toExcel() throws IOException, WriteException{
WritableWorkbook workbook = Workbook.createWorkbook(new File("c:\\tableToExcel.xls"));
WritableSheet sheet = workbook.createSheet("First Sheet", 0); //oder: ("Second Sheet", 1)
for( int ndx=0; ndx < table.getRowCount(); ndx++ ){
sheet.addCell(new Number( 0, ndx, ((Integer)table.getValueAt(ndx, 0)).doubleValue() ));
sheet.addCell(new Number( 1, ndx, ((Integer)table.getValueAt(ndx, 1)).doubleValue() ));
sheet.addCell(new Number( 2, ndx, ((Integer)table.getValueAt(ndx, 2)).doubleValue() ));
sheet.addCell(new Label(3, ndx, (String)table.getValueAt(ndx, 3)));
}
workbook.write();
workbook.close();
JOptionPane.showMessageDialog(this,"Die Excel Datei wurde angelegt:\n 'c:\\tableToExcel.xls'");
}
public static void main(String args[]) {new TableToExcelDemo().setVisible(true);}
private JButton btToExcel;
private JTable table;
private JToolBar toolbar;
}