`

java导出Excel文件以及文件的下载、删除

    博客分类:
  • java
 
阅读更多

内容包括,内容导出为excel格式,以及生成以后此excel的下载和删除。
首先定义方法,将要导出的数据通过参数传输过来:
java导出Excel文件以及文件的下载、删除。

1、创建Excel文件:
 

  1. String fileName = "C:\\统计数据"+startDate2+"-"+endDate2+".xls";  
  2.  WritableWorkbook workbook =Workbook.createWorkbook(new File(fileName));  

2、创建数据样式:
  1. //字体:  
  2. //字体大小,字体类型。  
  3. WritableFont  wr = newWritableFont(WritableFont.TIMES,14,WritableFont.BOLD);  
  4. //创建字体样式引用  
  5. WritableCellFormat fontFormat1 = new WritableCellFormat(wr);  
  6. //对其方式  
  7. fontFormat1.setAlignment(jxl.format.Alignment.CENTRE);  
  8. //是否有边框  
  9. fontFormat1.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN);  
  10.              
  11. //时间:  
  12. jxl.write.DateFormat df = newjxl.write.DateFormat("yyyy-MM-dd");  
  13. WritableCellFormat dateFormat = new WritableCellFormat(df);  
  14. dateFormat.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN);  
  15. dateFormat.setAlignment(jxl.format.Alignment.CENTRE);  
  16.   
  17. //数字:  
  18. jxl.write.NumberFormat nf = newjxl.write.NumberFormat("###,###,###,###,###");  
  19. WritableCellFormat numberFormat = new WritableCellFormat(nf);  
  20. numberFormat.setAlignment(jxl.format.Alignment.CENTRE);  
  21. numberFormat.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN);  
  22.  //建立第N个sheet  
  23. WritableSheet sheet = workbook.createSheet("名称",N);  
  24.    //sheet的第几列,和列宽。  
  25. sheet.setColumnView(0,6);  
  26. sheet.setColumnView(1,14);  
  27. sheet.setColumnView(2,12);  
  28.    //合并单元格(起始列,起始行,结束列,结束行)  
  29. sheet.mergeCells(1,0,2,0);  
  30.   //向sheet中写入数据(列,行,内容,格式)  
  31. Label label0 = new Label(1,0,"1992-04-06",dateFormat);  
  32.            sheet.addCell(label0);  
  33. Label label2 = new Label(1,1,"许阳",fontFormat2);  
  34.            sheet.addCell(label2);  
  35. Label label3 = new Label(2,1,"21",numberFormat1);  
  36.            sheet.addCell(label3);  
  37. workbook.write();  
  38. workbook.close();  


以上excel写入数据完成,并保存到了指定的位置。若是在本地操作,则没问题,若是在服务器上,就得使用java的输入输出流写入到本地(下载)。
调用downLoadFile方法。将文件位置用参数传过去。
  1. this.downLoadFile(fileName);  

this.downLoadFile(fileName);

downLoadFile方法:
  1. public void downLoadFile(String filePth) {  
  2.        HttpServletResponse response =ServletActionContext.getResponse();  
  3.        HttpServletRequest request =ServletActionContext.getRequest();  
  4.        try {  
  5.   
  6.            //得到当前路径  
  7.            //StringfilePath=request.getSession().getServletContext().getRealPath(File.separator);  
  8.            File temFile = new File(filePth);  
  9.           //判断文件是否存在  
  10.            if(!temFile.exists()){  
  11.                response.getWriter().write("ERROR:File Not Found");  
  12.                return ;  
  13.            }  
  14.           //处理文件名得位置(若服务器为linux和windows的处理方法不同)  
  15.            String fileName =filePth.substring(filePth.lastIndexOf(File.separator)+1);  
  16.          //设置头文件,名称和内容的编码不同,否则会出现乱码。  
  17.            response.setHeader("Content-Disposition""attachment; filename="+new String((fileName).getBytes("gbk"),"iso8859-1"));  
  18.   
  19.            response.setContentType("application/x-download");  
  20.            OutputStream ot=response.getOutputStream();  
  21.            BufferedInputStream bis  = newBufferedInputStream(new FileInputStream(temFile));  
  22.            BufferedOutputStream bos = new BufferedOutputStream(ot);  
  23.            byte[] buffer = new byte[4096];  
  24.            int length = 0;  
  25.            while((length = bis.read(buffer)) > 0){  
  26.                bos.write(buffer,0,length);  
  27.            }  
  28.            bos.close();  
  29.            bis.close();  
  30.            ot.close();  
  31.        } catch (Exception e) {  
  32.            e.printStackTrace();  
  33.        }  
  34.     }  



此时就会下载完成,完成后需要在服务器删除此Excel文件:
在this.downLoadFile方法后面继续调用删除的方法:
  1. public boolean deleteFile(String sPath) {  
  2.    boolean flag = false;  
  3.   //处理文件路径,将"/"替换成计算机识别的"\\"  
  4.    sPath =sPath.replace("/",File.separator);  
  5.    File file = newFile(sPath);  
  6.    // 路径为文件且不为空则进行删除  
  7.    if (file.isFile()&& file.exists()) {  
  8.      file.delete();  
  9.      flag = true;  
  10.    }  
  11.     returnflag;  
  12.  }  



执行所有代码完成后,实现了excel的生成,下载以及删除功能,可能实际应用不会如此麻烦,这里只是列出方法,每个功能都可单独使用,举一而反三。
分享到:
评论

相关推荐

    java读取excel及导出excel文件

    包括jar包,以及Java写的小程序用于读取本地excel文件,还有相关的API,以及Web应用导出Excel报表的简单实现

    java导入导出excel

    测试过的小程序,保证好使,jsp 小程序 实现excel导入orcale,自定义选择导入文件,orcale导出excel自定义选择导出路径,并且可查询文件夹中的所有文件名列表,并且可以通过程序删除文件。

    POI导入导出EXCEL文件.(struts 1.x and struts2.x).doc

    web中使用POI导入导出EXCEL文件的例子 struts1.x的例子,struts2.x可以参考自己修改 1.action的写法 import java.io.*; import java.sql.*; import java.util.ArrayList; import javax.servlet....

    java实现删除excel内容之间空行

    java实现删除excel内容之间空行,需要导入皮包。

    基于SSM的POI导入导出Excel实战

    基于SSM的POI导入导出Excel实战 基于ssm框架的poi导入导出excel-mvc模式体验-增加删除修改搜索

    利用java导入导出excel到oracle数据库的POI的jar文件包

    利用java导入导出excel到oracle数据库需要用到的jar包 用到的JAR包如下(可以直接到POI官网上下载也可以在文章的附件中下载): poi-3.9-20121203.jar poi-ooxml-3.9-20121203.jar poi-ooxml-schemas-3.9-20121203....

    Javaswing图书管理系统源码(含数据库脚本).zip

    ②管理员可以实现学生注册的管理,统一注册,统一注销等等,值得一提的是,这个地方使用了Excel技术,支持管理员通过Excel文件进行导入注册,同时支持所有用户的信息进行Excel文件的导出。技术大同小异,所以感兴趣...

    java web基于web的spring框架成绩管理系统以及数据库文件java课设毕设项目源码

    5. 导出与导入:管理员可以导出学生成绩数据为Excel或其他格式的文件,方便进行数据备份和分享。管理员也可以从文件中导入成绩数据,快速录入大量成绩信息。 6. 权限管理:系统可以管理用户的权限,确保只有合适的...

    JAVA后台管理系统源码

    5、导入导出Excel数据,支持xlsx和xls文件。 6、资源管理(菜单管理)。 7、用户管理和部门管理。 8、权限管理。不仅可管理各个功能模块的权限,也可以管理功能模块里的页面按钮权限。 9、报表统计。也可以嵌入其他...

    java课程设计学生同学录管理系统

    3.支持通讯录以Excel文件格式导入导出操作。 4.界面支持全键盘操作,即不用鼠标也能完成该系统的所有功能。 5.查询统计功能,能够按照籍贯、专业等条件统计分析,并且以图表的方式展现。 6.界面及相应功能可以...

    Java通用后台管理系统源码 JAVATYHTXT.rar

    5、导入导出Excel数据,支持xlsx和xls文件。 6、资源管理(菜单管理)。 7、用户管理和部门管理。 8、权限管理。不仅可管理各个功能模块的权限,也可以管理功能模块里的页面按钮权限。 9、报表统计。也可以嵌入其他...

    testlinkconvert2

    4. 从testlink中导出测试套件或测试用例(xml文件),使用上述工具将xml文件转换成格式合适的excel文件; 5. 按照指定格式在excel中编写测试用例(格式与第4点中转换得到的excel格式一致即可),使用上述工具将excel...

    java版通讯录管理系统

    文件、xml 文件、vCard 文件或其他自定义格式文件,但不能是 Excel 文件)。不 使用数据库。 2. 通讯录中每个项目包括: ( 1)基本信息:姓名、手机号码、电子邮箱、生日、所属组、备注、像片。 ( 2)...

    SpringMVC项目,注解实现,前端框架jQuery,EasyUI.赋有详细注释,增删改查,导出一应具全

    让你一看即明,在此项目中还加入了权限控制,已经完善,有需要的朋友可以参考也可直接使用,还有Mybatis技术以及导出Excel通用方法,通用类有需要的朋友可以下下来直接使用,以及RestFUL风格增删改查,以及前端各种...

    基于Java+MySQL实现的(GUI)租车信息管理系统(数据库课程)【100013120】

    能够根据系统中的出租记录以及维修记录自动导出日、月、季度、年度的财务报表,并将生成的财务报表导出为 Excel 文件。 补充说明:需要对系统管理员进行分级管理,对租车客户进行会员制管理。 租车用户: 能够修改...

    java项目之hrm人事管理项目(java毕业设计)

    6、员工信息的增加、修改、删除、查询以及员工头像异步上传、员工信息导出至Excel文件 7、自定义分页标签实现(24种样式随意切换) 8、代码机器人使用等等 其他实战项目:java项目实战之电商系统全套(前台和后台)...

    java课程设计学生通信录管理系统

    3.支持通讯录以Excel文件格式导入导出操作。 4.界面支持全键盘操作,即不用鼠标也能完成该系统的所有功能。 5.查询统计功能,能够按照籍贯、专业等条件统计分析,并且以图表的方式展现。 6.界面及相应功能可以...

Global site tag (gtag.js) - Google Analytics