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

运行结果::

 

Java POI 利用swing将table中的数据传输到excel中

表格中数据::

Java POI 利用swing将table中的数据传输到excel中