Java POI 利用swing将table中的数据传输到excel中
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import javax.swing.table.*;
/*
*这段程序的主要作用是,利用swing生成一个table然后将table中的数据传输到excel的表格中来。
*结合swing和Java poi来实现对于数据的控制和传递,
*定义一个窗体,在窗体中加入table和button,之后点击按钮就会将数据传输到excel表格中,
*
*
*/
public class Demo04 {
public Demo04() { }
public void Demo04(JTable table, File file) throws IOException {
TableModel model = table.getModel();//定义table
FileWriter out = new FileWriter(file);//定义传输路径
//利用io将数据传输到excel中
for(int i=0; i < model.getColumnCount(); i++) {
out.write(model.getColumnName(i) + "\t");
}
out.write("\n");
for(int i=0; i< model.getRowCount(); i++) {//行
for(int j=0; j < model.getColumnCount(); j++) {//列
out.write(model.getValueAt(i,j).toString()+"\t");
}
out.write("\n");
}
out.close();
System.out.println("write out to: " + file);
System.out.println(model.getRowCount());
System.out.println(model.getColumnCount());
}
public static void main(String[] args) {
//定义一个二维数组,
String[][] data = {
{ "Housewares", "$1275.00" },
{ "Pets", "$125.00" },
{ "Electronics", "$2533.00" },
{ "Mensware", "$497.00" }
};
String[] headers = { "Department", "Daily Revenue" };//定义表头
//定义窗体,并在窗体中加入按钮和table然后对按钮加入监听器事件
JFrame frame = new JFrame("JTable to Excel Hack");
DefaultTableModel model = new DefaultTableModel(data,headers);
final JTable table = new JTable(model);
JScrollPane scroll = new JScrollPane(table);
JButton export = new JButton("Export");
export.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
try {
Demo04 exp = new Demo04();
exp.Demo04(table, new File("C:\\Users\\Administrator\\Desktop\\results.xls"));
} catch (IOException ex) {
System.out.println(ex.getMessage());
ex.printStackTrace();
}
}
});
//定义面板和按钮的布局
frame.getContentPane().add("Center",scroll);
frame.getContentPane().add("South",export);
frame.pack();
frame.setVisible(true);
}
}
运行结果::
表格中数据::