Java JTable 表格 获取存储路径,文件名 ,导出excel表格
在做计量泵上位机软件时,需要将下位机传上来的数据,存入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表格的更多相关文章
- java 实现用户自由选择字段实现导出EXCEL表格
package com.thinkgem.jeesite.common.utils.excel; import java.io.File; import java.io.OutputStream; i ...
- NPOI_winfrom导出Excel表格(一)(合并单元格、规定范围加外边框、存储路径弹框选择)
1.导出 private void btn_print_Click(object sender, EventArgs e) { DataTable dtNew = new DataTable(); d ...
- java导出excel表格
java导出excel表格: 1.导入jar包 <dependency> <groupId>org.apache.poi</groupId> <artifac ...
- Java代码导入导出 Excel 表格最简单的方法
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStrea ...
- java中使用jxl导出Excel表格详细通用步骤
该方法一般接收两个参数,response和要导出的表格内容的list. 一般我们将数据库的数据查询出来在页面进行展示,根据用户需求,可能需要对页面数据进行导出. 此时只要将展示之前查询所得的数据放入s ...
- Python 使用openpyxl导出Excel表格的时候,使用save()保存到指定路径
在使用openpyxl导出Excel表格的使用,如何指定导出的路径呢. 使用sava(filename),会保存到当前执行文件的路径下. 使用sava("/tmp/{}.xlsx" ...
- spring mvc项目中导出excel表格简单实现
查阅了一些资料,才整理出spring mvc 项目导出excel表格的实现,其实很是简单,小计一下,方便以后查阅,也希望帮助有需要的朋友. 1.导入所需要依赖(Jar包).我使用的是maven,所以坐 ...
- 使用poi导出Excel表格,jar包冲突
HTTP Status 500 – Internal Server Error Type Exception Report Message Handler processing failed; nes ...
- 在vue中导出excel表格
初学者学习vue开发,想把前端项目中导出Excel表格,查了众多帖子,踩了很多坑,拿出来与大家分享一下经验. 安装依赖 //npm npm install file-saver -S npm inst ...
随机推荐
- windows下UDP服务器和客户端的实现
UDP是面向非连接的协议,因此在实现UDP服务器时,服务器不用总是处于监听状态.可以直接收发数据. 服务器端 1.初始化 WASStartup ( ... ) 2.创建Socket s ...
- Poj(1511),SPFA
题目链接:http://poj.org/problem?id=1511 嗯,最后一次写SPFA了,以后就套模板了. 题意:给出n个点和n条有向边,求所有点到源点1的来回最短路之和(保证每个点都可以往返 ...
- FTP协议标准命令
FTP:文件传输协议(File Transfer Protocol) 文件传输协议(FTP)使得主机间可以共享文件.FTP 使用 TCP 生成一个虚拟连接用于控制信息,然后再生成一个单独的 TCP 连 ...
- form 提交
1.方式1:字段加验证 @model MvcWeb.Models.UserInfo @{ ViewBag.Title = "Add"; } <h2>Add</h2 ...
- centos 安装 mysql 5.6和workbench
windows下安装mysql很简单,去官网找到.msi文件,一键安装就OK了. Centos下面安装Mysql5.6其实也是蛮简单的. 注意:centos6.5默认mysql版本是5.1的 1.添加 ...
- 【leetcode❤python】242. Valid Anagram
class Solution(object): def isAnagram(self, s, t): if sorted(list(s.lower()))==sorted(list ...
- BZOJ 2756 奇怪的游戏(最大流)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2756 题意:在一个 N*M 的棋盘上玩,每个格子有一个数.每次 选择两个相邻的格子,并使 ...
- CodeForces 478C Table Decorations
Table Decorations Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u ...
- FZU 2144 Shooting Game
Shooting Game Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submi ...
- pch和info.plist初探
整理下之前的关于pch和info.plist文件,一下文件部分内容是从传智博客的课件里截取