码迷,mamicode.com
首页 > 编程语言 > 详细

Java JTable 表格 获取存储路径,文件名 ,导出excel表格

时间:2015-04-09 23:15:54      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:

在做计量泵上位机软件时,需要将下位机传上来的数据,存入MYSQL数据库,显示在java 上位机界面上,并能导出至电脑指定位置。 

 

选择存储路径和文件名:

    // 处理另存文件的菜单  
     public void ExportExcelFile(String Sql,String []Paras) {  
         
         String AbsolutePath="";     
      // 设置对话框的风格  
      try {  
       UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());  
      } catch (Exception e1) {  
       // TODO Auto-generated catch block  
       e1.printStackTrace();  
      }  
      JFileChooser jFileChooser = new JFileChooser();  
    //   jFileChooser.setMultiSelectionEnabled(true);//如果要多选的话,设置这句话即可  
      // 设置默认的保存文件名称,注意如果这样设置了之后,后面就无法取得用户改变之后的文件存储路径了,因为后面调用的 jFileChooser.getCurrentDirectory()获取的路//径就是你设置的默认文件的路径  
      // jFileChooser.setSelectedFile(new  
      // File("默认文件名称"));  
      int result = jFileChooser.showSaveDialog(null);        
      switch (result) {  
      case JFileChooser.APPROVE_OPTION:  
          System.out.println("11");
           // 这一种方法是把用户输入的作为保存的文件名  保存为excel表格  .xls
          AbsolutePath = jFileChooser.getCurrentDirectory() + File.separator + jFileChooser.getSelectedFile().getName()  
             + ".xls";  //.xls 为输出excel表格 也可以指定其他格式
           SqlHelper sqlHelper=new SqlHelper();
           ResultSet rs=sqlHelper.query(Sql, Paras);                    
           File file=new File(AbsolutePath);
            try {
                this.writeExcel(rs, file); //导出数据方法
            } catch (SQLException e1) {    
                e1.printStackTrace();
            }            
            JOptionPane.showMessageDialog(null, "导出数据成功!");           
           break;  
      case JFileChooser.CANCEL_OPTION:             
          JOptionPane.showMessageDialog(null, "取消导出!!");
          break;  
      case JFileChooser.ERROR_OPTION:           
         //System.out.println("出错啦!!");  
          break;  
      }             
   }
//导出数据方法:
   //需要一个结果集合rs 和 file文件
public void writeExcel(ResultSet rs,File file) throws SQLException{ WritableWorkbook workbook = null; //从rs对象中可以得到ResultSetMetaData ,从而可以得到表的列名 ResultSetMetaData rsmt=rs.getMetaData(); try{ //首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象 workbook = Workbook.createWorkbook(file); } catch (IOException e){ e.printStackTrace(); } if(workbook!=null){ WritableSheet wsheet = workbook.createSheet("sheet1", 0); try { //获得表的列名 for(int i=0;i<rsmt.getColumnCount();i++) { Label label_column1 = new Label(i, 0, rsmt.getColumnName(i+1)); wsheet.addCell(label_column1); } } catch (RowsExceededException e1) { e1.printStackTrace(); } catch (WriteException e1) { e1.printStackTrace(); } //获得表的内容 int i=1; while(rs.next()){ for(int j=0;j<rsmt.getColumnCount();j++) { Label label1 = new Label(j, i, rs.getString(j+1)); try { wsheet.addCell(label1); } catch (RowsExceededException e) { e.printStackTrace(); } catch (WriteException e) { e.printStackTrace(); } } i++; } try { //从内存中写入文件中 workbook.write(); //关闭资源,释放内存 workbook.close(); } catch (IOException e) { e.printStackTrace(); } catch (WriteException e){ e.printStackTrace(); } } }

 

 

Java JTable 表格 获取存储路径,文件名 ,导出excel表格

标签:

原文地址:http://www.cnblogs.com/wuyun-blog/p/4412327.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!