在做计量泵上位机软件时,需要将下位机传上来的数据,存入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表格的更多相关文章

  1. java 实现用户自由选择字段实现导出EXCEL表格

    package com.thinkgem.jeesite.common.utils.excel; import java.io.File; import java.io.OutputStream; i ...

  2. NPOI_winfrom导出Excel表格(一)(合并单元格、规定范围加外边框、存储路径弹框选择)

    1.导出 private void btn_print_Click(object sender, EventArgs e) { DataTable dtNew = new DataTable(); d ...

  3. java导出excel表格

    java导出excel表格: 1.导入jar包 <dependency> <groupId>org.apache.poi</groupId> <artifac ...

  4. Java代码导入导出 Excel 表格最简单的方法

    import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStrea ...

  5. java中使用jxl导出Excel表格详细通用步骤

    该方法一般接收两个参数,response和要导出的表格内容的list. 一般我们将数据库的数据查询出来在页面进行展示,根据用户需求,可能需要对页面数据进行导出. 此时只要将展示之前查询所得的数据放入s ...

  6. Python 使用openpyxl导出Excel表格的时候,使用save()保存到指定路径

    在使用openpyxl导出Excel表格的使用,如何指定导出的路径呢. 使用sava(filename),会保存到当前执行文件的路径下. 使用sava("/tmp/{}.xlsx" ...

  7. spring mvc项目中导出excel表格简单实现

    查阅了一些资料,才整理出spring mvc 项目导出excel表格的实现,其实很是简单,小计一下,方便以后查阅,也希望帮助有需要的朋友. 1.导入所需要依赖(Jar包).我使用的是maven,所以坐 ...

  8. 使用poi导出Excel表格,jar包冲突

    HTTP Status 500 – Internal Server Error Type Exception Report Message Handler processing failed; nes ...

  9. 在vue中导出excel表格

    初学者学习vue开发,想把前端项目中导出Excel表格,查了众多帖子,踩了很多坑,拿出来与大家分享一下经验. 安装依赖 //npm npm install file-saver -S npm inst ...

随机推荐

  1. Mac环境下用Java(Sikuli+Robot)实现页游自动化

    转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ Sikulix(以前叫Sikuli)在Mac电脑的环境配置步骤如下: 1.从官网上下载Sikuli ...

  2. 湘潭 A simple problem

    A simple problem Accepted : 30   Submit : 303 Time Limit : 15000 MS   Memory Limit : 655360 KB Probl ...

  3. (3)redis队列功能

    Redis队列功能介绍 List 常用命令: Blpop删除,并获得该列表中的第一元素,或阻塞,直到有一个可用 Brpop删除,并获得该列表中的最后一个元素,或阻塞,直到有一个可用 Brpoplpus ...

  4. android 入门 003 (点击事件)

    点击事件 有四种实现方式. 1.内部类实现方式 1.0 package cn.rfvip.clickevent; import android.app.Activity; import android ...

  5. QCom MSM MDP显示驱动一些点的简记

    简要记录了Qualcom MSM8xxx MDP Framebuffer驱动中的一些点. Framebuffer设备的sysfs 330static int msm_fb_create_sysfs(s ...

  6. 【leetcode❤python】Convert a Number to Hexadecimal

    #-*- coding: UTF-8 -*- class Solution(object):    hexDic={0:'0',1:'1',2:'2',3:'3',4:'4',5:'5',6:'6', ...

  7. 关于HTTP GET请求的url中文参数编码

    场景:前端用JS构造了一个GET请求,携带了一个中文的参数,通过Spring MVC传到后台以后解析中文是乱码. 1. 发送请求,从浏览器中捕获到http的请求内容如下: Remote Address ...

  8. [HDOJ3911]Black And White(线段树,区间合并)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3911 题意:一个01串,两种操作: 0 a b:查询[a,b]内连续1的最长长度. 1 a b:翻转[ ...

  9. 03_Spring工厂接口

    Spring工厂接口 1.BeanFactory 接口 和 ApplicationContext 接口区别 ?      * ApplicationContext 接口继承BeanFactory接口, ...

  10. [C程序设计语言]第二部分

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...