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 ...
随机推荐
- tensor
初始化 z = torch.Tensor(,,,,) --可以创建多维数组.里面是随机的数. s = torch.Tensor(,):fill() --用1填充 t = torch.rand(,) m ...
- nuget使用
我如何获得的NuGet安装/更新的packages.config所有的软件包? nuget我有一个在它的多个项目的解决方案.大多数第三方引用的缺失,但也有packages.config文件为每个项目. ...
- 关于qquu8 的主页修改
1) 找到 这个文件夹 C:\Users\lidu\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskB ...
- 1-NPM
什么是NPM NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题. 常见的使用场景有以下几种: 允许用户从NPM服务器下载别人编写的第三方包到本地使用. 允许用户从N ...
- serialVersionUID
serialVersionUID作用: 序列化时为了保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性. 有两种生成方式: 一个是默认的1L,比如:private static final l ...
- Xcode 创建.a和framework静态库
库介绍 库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行.库分静态库和动态库两种. iOS中的静态库有 .a 和 .framework两种形式:动态库有.dylib 和 .framew ...
- CodeForces 151B Phone Numbers
Phone Numbers Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Sub ...
- [Gym]2008-2009 ACM-ICPC, NEERC, Moscow Subregional Contest
比赛链接:http://codeforces.com/gym/100861 A模拟,注意两个特殊的缩写. #include <bits/stdc++.h> using namespace ...
- C语言文法定义与C程序的推导过程
program à external_declaration | program external_declaration <程序> -> <外部声明> | < ...
- Linux基础※※※※访问Windows共享文件夹
参考Linux公社链接:http://www.linuxidc.com/Linux/2014-06/103749.htm 实际上,可以直接用sambaclient程序访问共享资源. 列出共享主机的列表 ...