java swing 导出文件_java swing (一) 导出excel文件并打开
点击XXX管理系统中的“导出Excel”按钮,然后弹出如上图,点击“保存”以后,该Excel就保存到指定路径,并且打开。
上述的动作,其实不难,主要是打开该文件时的路径问题。
下面是我的一些构想和实现,仅此记录。
1 . JFileChooser获取导出的路径path,然后装载数据,装载的代码我就不贴出了,这不是重点。
public String selectSavePath(){
SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd_HHmmss");
String name = dateformat.format(new Date());
name = name + ".xls";
//构造文件保存对话框
JFileChooser chooser = new JFileChooser();
chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
chooser.setDialogType(JFileChooser.SAVE_DIALOG);
chooser.setMultiSelectionEnabled(false);
chooser.setAcceptAllFileFilterUsed(false);
chooser.setDialogTitle("保存单位数据文件");
//取得文件名输入框冰设置指定格式
JTextField fileNameField = getTextField(chooser);
fileNameField.setText(name);
//添加文件过滤器
chooser.addChoosableFileFilter(new FileFilter(){
public boolean accept(File f) {
return true;
}
public String getDescription() {
return "所有文件(*.*)";
}
});
chooser.addChoosableFileFilter(new FileFilter(){
public boolean accept(File f) {
if (f.getName().endsWith("xls") || f.isDirectory()) {
return true;
}else{
return false;
}
}
public String getDescription() {
return "Excel文件(*.xls)";
}
});
//打开对话框
int result = chooser.showSaveDialog(Global.mainFrame);//null
//文件确定
if(result==JFileChooser.APPROVE_OPTION) {
String outPath = chooser.getSelectedFile().getAbsolutePath();
if(new File(outPath).exists()){
if(!MessageTools.showConfirmDialog("文件已经存在,是否要覆盖该文件?")){
return null;
}
}
return outPath;
}
return null;
}
FileOutputStream fileOut = new FileOutputStream(path); //String path = this.selectSavePath();
wb.write(fileOut); //org.apache.poi.hssf.usermodel.HSSFSheet 对象,装载excel用
fileOut.close();
2. 过滤路径,并打开该文件
if (MessageTools.showConfirmDialog("导出数据成功,要打开该文件吗?"))
{
//path = D:\\Backup\\我的文档\\2012-11-09_110848.xls
String fileName = path.replace('\\', '/');
StringTokenizer st = new StringTokenizer(fileName, "/");
while (st.hasMoreTokens())
{
String sub = st.nextToken();
if ((sub.indexOf(' ') != -1) || (sub.indexOf('&') != -1) || (sub.indexOf('(') != -1) || (sub.indexOf(')') != -1) || (sub.indexOf('[') != -1) || (sub.indexOf(']') != -1) || (sub.indexOf('{') != -1) || (sub.indexOf('}') != -1) || (sub.indexOf('^') != -1) || (sub.indexOf('=') != -1) || (sub.indexOf(';') != -1) || (sub.indexOf('!') != -1) || (sub.indexOf('\'') != -1) || (sub.indexOf('+') != -1) || (sub.indexOf(',') != -1) || (sub.indexOf('`') != -1) || (sub.indexOf('~') != -1)) //过滤掉特殊字符
{
fileName = fileName.replaceFirst(sub, "\"" + sub + "\"");
}
}// fileName = D:/Backup/我的文档/2012-11-09_110848.xls
Runtime.getRuntime().exec("cmd /E:ON /c start " + fileName);
}
用Runtime.getRuntime().exec()打开文件,文件路径含有特殊符号的话则打开不了,需要把文件路径过滤成特定格式。如:
过滤前 : D:\\Backup\\我的文档\\2012-11-09_110848.xls
过滤后 : D:/Backup/我的文档/2012-11-09_110848.xls
OK.
后记: 蛋疼的java们的XXX管理系统啊,jsp或者Extjs写写界面也就算了,连swing也上。。。哎,坑爹啊!估计以后得有好几篇swing了。
java swing 导出文件_java swing (一) 导出excel文件并打开相关推荐
- Java web中不同浏览器间导出Excel文件名称乱码问题解决方案
Java web中不同浏览器间导出Excel文件名称乱码问题解决方案 参考文章: (1)Java web中不同浏览器间导出Excel文件名称乱码问题解决方案 (2)https://www.cnblog ...
- Java:使用POI导出Excel文件后打开文件提示因为文件格式或文件扩展名无效而无法打开
使用POI导出Excel文件后打开文件提示因为文件格式或文件扩展名无效而无法打开 问题 方案 问题 在SpringBoot项目中,使用POI导出查询结果至Excel文件中,成功导出后打开Excel文件 ...
- 解决前端导出excel文件,打开为乱码
前端开发中,导入和导出文件是比较常见的业务场景,楼主在初次接触此类问题时,也在此卡了几天,好在问题最终也得以解决,废话不多说了直接上代码: <el-upload:on-error="u ...
- java自动生成生成java透视表_java基于poi导出excel透视表代码实例
这篇文章主要介绍了java基于poi导出excel透视表代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 从前,我是一个前端程序猿,怀着对打通 ...
- java jxl 筛选_JAVA 用 JXL导出excel怎么给标题设置自动筛选功能,求代码。
展开全部 一.创建文件 拟生成e5a48de588b63231313335323631343130323136353331333363363435一个名为"test.xls"的Ex ...
- poi导出excel 损坏_急!!!java用poi导出excel文件,打开导出的文件时报错“文件错误,数据可能丢失”...
展开全部 两个原因: 1.你的excel模版本身有问题,可以尝试新建一个模版. 2.你的excel使用了一e68a8462616964757a686964616f31333365643662些POI不 ...
- java中jxl飘红_jxl导出excel文件,部署到tomcat中就会报错,为什么呢,求解!
在main函数中执行excel导出是可以的,但是部署到tomcat中就会抱一下错误,为什么呢,求解!SEVERE: Servlet.service() for servlet [Export] in ...
- easypoi导出excel不设置样式_解决EasyPoi导出excel文件后打开提示格式错误的问题
excel文件下载成功后打开文件遇到错误 之前的下载代码: private static void downLoadExcel(String fileName, HttpServletResponse ...
- Java poi插件导出Excel文件合并多sheet页
文章目录 一.java导出excel格式文件 二.excel文件多sheet页合并 前言:2020年第一篇文章,就写这两天工作中遇到的这个小需求吧,导出多excel,每个excel有多个sheet页, ...
最新文章
- iPhone磁盘空间/剩余空间代码
- 工作62:显示省略号
- 密码学专题 OpenSSL中SSL相关指令
- mysql查询时间出来数字_mysql查询时间出来数字的解决方法
- 做点RouteOS方面的备忘,关于流量监控限速的
- Android工程重新编译问题
- 怎么对ChannelHandler做测试?
- fanuc服务器显示6,FANUC常用系统参数说明 (6页)-原创力文档
- [备忘]方正字库中英文对照表
- 以太网协议号字段定义
- win7系统蓝牙功能怎么开启
- Linux主目录下的文件夹名称改为英文
- 这是互联网变得越来越敌对的7种方式
- 西门子 Prodave通讯
- 8.2 知识蒸馏方法概述
- 25行代码解决财务数据大写金额转换
- nrf52832 学习笔记(六)配对和绑定
- windows系统通过虚拟机安装linux
- Flutter自定义Widget实例 -如何创建炫酷粒子时钟效果!
- python怎样使用各个日期赤纬_Python常用的日期时间处理方法示例