JTable内容保存至e此博文包含图片xcel

import java.awt.*;
import java.awt.event.*;
import java.util.Vector;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;
import java.io.File;
import java.io.*;
//import javax.swing.filechooser.FileFilter;
public class testTable implements ActionListener
{ JFrame f=new JFrame();
  JTable table = null;
  JLabel label= null;
  DefaultTableModel defaultModel =null;
  JFileChooser fileChooser=new JFileChooser();//文件选择
  public testTable()
  {
   
    Object[][] p=
    {
      {"王磊",new Integer(20),new Integer(30),new Integer(20)},
      {"张凡",new Integer(20),new Integer(30),new Integer(20)},
      {"周欣",new Integer(20),new Integer(30),new Integer(20)},
      {"张丽",new Integer(20),new Integer(30),new Integer(20)},
      };
     
  
   String[] n={"姓名","班级","年龄","薪水"};
   defaultModel =new DefaultTableModel(p,n);//采用default模式
   table =new JTable(defaultModel);
   table.setPreferredScrollableViewportSize(new Dimension(400,80));
   JScrollPane s=new JScrollPane(table);
   JPanel panel= new JPanel();
  
       
         JButton b2=new JButton("增加行");
         panel.add(b2);
        b2.addActionListener(this);
          JButton b3=new JButton("删除行");
          panel.add(b3);
        b3.addActionListener(this);
           JButton b4=new JButton("保存");//保存按钮
           panel.add(b4);
        b4.addActionListener(this);
    Container contentPane =f.getContentPane();
    contentPane.add(panel,BorderLayout.SOUTH);
    contentPane.add(s,BorderLayout.CENTER);
    f.setTitle("JTableDemo");
    f.pack();
    f.setVisible(true);
   
  
    f.addWindowListener(new WindowAdapter()//关闭对话框
    {
     public void windowClosing(WindowEvent e)
     {
         System.exit(0);
         }
         }
         );
        }
        public void actionPerformed(ActionEvent e)//按键响应
        {
         
         
           File file =new File("");//
          int result; 
       
          if (e.getActionCommand().equals("删除行"))//单击删除按钮删除行
          {
            int rowcount=defaultModel.getRowCount()-1;
            if(rowcount>=0)
            {
                defaultModel.removeRow(rowcount);
                defaultModel.setRowCount(rowcount);
             }
           }
           
                         
              if(e.getActionCommand().equals("打开")) //单击打开文件
         try{ 
         fileChooser.setApproveButtonText("确定");
         fileChooser.setDialogTitle("打开文件");
         result=fileChooser.showOpenDialog(f);
          if( result==JFileChooser.APPROVE_OPTION)
            {
            file=fileChooser.getSelectedFile();
            label.setText("要打开的文件为:"+file.getName());
            }
            else if( result==JFileChooser.CANCEL_OPTION)
             {
               label.setText("你没有打开任何文件");
             }
           }
         catch(Exception ee){System.out.print("error"+ee); }
  
        
  
        
     if(e.getActionCommand().equals("保存"))
   try {    
    
            fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
        fileChooser.showSaveDialog(f);//显示保存对话框
         String fi = file.getAbsolutePath()+".xls";
        System.out.println(file);
         FileWriter out = new FileWriter(fi);//新建输出
        for (int i = 0; i < table.getColumnCount(); i++) {
                                  out.write(table.getColumnName(i) + "\t");
                                 }
                 out.write("\n");
                      for (int i = 0; i < table.getRowCount(); i++) {
                   for (int j = 0; j < table.getColumnCount(); j++) {
                      out.write(table.getValueAt(i, j).toString() + "\t");
                                             }
                                    out.write("\n");
                                              }
                      out.close();
                  JOptionPane.showMessageDialog(null, "文件导出成功");
                   Runtime.getRuntime().exec("cmd /c start "" "" + fi+""");
                }
// 打开生成的excel文件
   catch (Exception ee) { ee.printStackTrace();   }
     table.ridate();
     
     }
 
           
              public static void main(String args[])
              {
                new testTable();
               
              }

 }

JTable内容保存至excel



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值