点击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文件并打开相关推荐

  1. Java web中不同浏览器间导出Excel文件名称乱码问题解决方案

    Java web中不同浏览器间导出Excel文件名称乱码问题解决方案 参考文章: (1)Java web中不同浏览器间导出Excel文件名称乱码问题解决方案 (2)https://www.cnblog ...

  2. Java:使用POI导出Excel文件后打开文件提示因为文件格式或文件扩展名无效而无法打开

    使用POI导出Excel文件后打开文件提示因为文件格式或文件扩展名无效而无法打开 问题 方案 问题 在SpringBoot项目中,使用POI导出查询结果至Excel文件中,成功导出后打开Excel文件 ...

  3. 解决前端导出excel文件,打开为乱码

    前端开发中,导入和导出文件是比较常见的业务场景,楼主在初次接触此类问题时,也在此卡了几天,好在问题最终也得以解决,废话不多说了直接上代码: <el-upload:on-error="u ...

  4. java自动生成生成java透视表_java基于poi导出excel透视表代码实例

    这篇文章主要介绍了java基于poi导出excel透视表代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 从前,我是一个前端程序猿,怀着对打通 ...

  5. java jxl 筛选_JAVA 用 JXL导出excel怎么给标题设置自动筛选功能,求代码。

    展开全部 一.创建文件 拟生成e5a48de588b63231313335323631343130323136353331333363363435一个名为"test.xls"的Ex ...

  6. poi导出excel 损坏_急!!!java用poi导出excel文件,打开导出的文件时报错“文件错误,数据可能丢失”...

    展开全部 两个原因: 1.你的excel模版本身有问题,可以尝试新建一个模版. 2.你的excel使用了一e68a8462616964757a686964616f31333365643662些POI不 ...

  7. java中jxl飘红_jxl导出excel文件,部署到tomcat中就会报错,为什么呢,求解!

    在main函数中执行excel导出是可以的,但是部署到tomcat中就会抱一下错误,为什么呢,求解!SEVERE: Servlet.service() for servlet [Export] in  ...

  8. easypoi导出excel不设置样式_解决EasyPoi导出excel文件后打开提示格式错误的问题

    excel文件下载成功后打开文件遇到错误 之前的下载代码: private static void downLoadExcel(String fileName, HttpServletResponse ...

  9. Java poi插件导出Excel文件合并多sheet页

    文章目录 一.java导出excel格式文件 二.excel文件多sheet页合并 前言:2020年第一篇文章,就写这两天工作中遇到的这个小需求吧,导出多excel,每个excel有多个sheet页, ...

最新文章

  1. iPhone磁盘空间/剩余空间代码
  2. 工作62:显示省略号
  3. 密码学专题 OpenSSL中SSL相关指令
  4. mysql查询时间出来数字_mysql查询时间出来数字的解决方法
  5. 做点RouteOS方面的备忘,关于流量监控限速的
  6. Android工程重新编译问题
  7. 怎么对ChannelHandler做测试?
  8. fanuc服务器显示6,FANUC常用系统参数说明 (6页)-原创力文档
  9. [备忘]方正字库中英文对照表
  10. 以太网协议号字段定义
  11. win7系统蓝牙功能怎么开启
  12. Linux主目录下的文件夹名称改为英文
  13. 这是互联网变得越来越敌对的7种方式
  14. 西门子 Prodave通讯
  15. 8.2 知识蒸馏方法概述
  16. 25行代码解决财务数据大写金额转换
  17. nrf52832 学习笔记(六)配对和绑定
  18. windows系统通过虚拟机安装linux
  19. Flutter自定义Widget实例 -如何创建炫酷粒子时钟效果!
  20. python怎样使用各个日期赤纬_Python常用的日期时间处理方法示例

热门文章

  1. 如果只看一篇文章弄懂Pfile与spfile,那么这篇就够了……
  2. 个人成长:2021年中随想记
  3. 使用 cProfile 和火焰图调优 Python 程序性能
  4. MySQL事务控制语句
  5. Markovs Chains采样
  6. RxJS Functional Programming
  7. 记录从前端到后端--博客项目
  8. 身为DATASHUO大数据工程师,我亲手制作的2016年第一期数据报告
  9. 【SAS NOTE】substr函数
  10. 老板也是人:孤独的企业家