我用的是jxl导出excel,比较简单,最开始我是固定路径不能选择,很局限,后来改了,而且固定路径当把项目放在服务器上时,路径不可行。

在网上各位大神的帮助成功设置响应头,并且可选保存路径。

1.前端

  1. //不是用的ajax,好像ajax不能成功
    //js
  2. $("#exportbaofei").click(function(){
  3. window.location.href="${pageContext.request.contextPath}/ExportBaoFeiServlet";
  4. });
  5. //html
  6. <input type="button" value="导出废模" id="exportbaofei"/>

2.servlet

  1. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  2. log.info("导出报废模的servlet");
  3. MuJUService muJUService = new MuJUService();
  4. //查询
  5. List<Map<String, String>>list =muJUService.exportBaoFei();
  6. //弹框选择路径
  7. WritableWorkbook book = null;
  8. response.reset();
  9. response.setCharacterEncoding("UTF-8");// 设置字符集
  10. // 创建工作流
  11. OutputStream os = null;
  12. try {
  13. // 设置弹出对话框
  14. response.setContentType("application/DOWLOAD");
  15. response.setCharacterEncoding("UTF-8");
  16. // 设置工作表的标题
  17. response.setHeader("Content-Disposition", "attachment; filename=feimu_month.xls");// 设置生成的文件名字、、不能用汉字,没有设置汉字解码
  18. os = response.getOutputStream();
  19. // 初始化工作表
  20. book = Workbook.createWorkbook(os);
  21. } catch (IOException e1) {
  22.  
  23. log.error("导出excel出现IO异常", e1);
  24. // throw new ServiceException("导出失败", e1);
  25. e1.printStackTrace();
  26. }
  27.  
  28. //excel格式设置
  29. WritableFont font1= new WritableFont(WritableFont.createFont("楷体 _GB2312"), 12, WritableFont.NO_BOLD); //设置字体格式为excel支持的格式 WritableFont font3=new WritableFont(WritableFont.createFont("楷体 _GB2312"), 12, WritableFont.NO_BOLD);
  30. WritableCellFormat format1=new WritableCellFormat(font1);
  31. //把水平对齐方式指定为居中
  32. try {
  33. format1.setAlignment(jxl.format.Alignment.CENTRE);
  34. //把垂直对齐方式指定为居中
  35. format1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
  36. //设置自动换行
  37. format1.setWrap(true);
  38. } catch (WriteException e1) {
  39. // TODO Auto-generated catch block
  40. log.error(e1);
  41. e1.printStackTrace();
  42. }
  43.  
  44. // WritableWorkbook book = null;
  45. try {
  46. // 打开文件
  47. // book = Workbook.createWorkbook(new File(filename+".xls"));
  48. // 生成名为"学生"的工作表,参数0表示这是第一页
  49. WritableSheet sheet = book.createSheet("当月报废单", 0);
  50.  
  51. sheet.addCell(new Label(0,0,"序号",format1));
  52. for(int i = 1;i<12;i++){
  53. sheet.setColumnView(i,15);
  54. }
  55. sheet.addCell(new Label(1,0,"下单时间",format1));
  56. sheet.addCell(new Label(2,0,"返回时间",format1));
  57. sheet.addCell(new Label(3,0,"维修单号",format1));
  58. sheet.addCell(new Label(4,0,"产品图号",format1));
  59. sheet.addCell(new Label(5,0,"模具图号",format1));
  60. sheet.addCell(new Label(6,0,"模具规格",format1));
  61. sheet.addCell(new Label(7,0,"维修模号",format1));
  62. sheet.addCell(new Label(8,0,"维修数量",format1));
  63. sheet.addCell(new Label(9,0,"维修原因",format1));
  64. sheet.addCell(new Label(10,0,"报废模号",format1));
  65. sheet.addCell(new Label(11,0,"报废数量",format1));
  66. if(list!=null && !list.isEmpty()){
  67. int rows =1;//hang
  68. int cols = 0;//lie
  69. for (Map<String, String> map : list) {
  70. sheet.addCell(new Number(0, rows, rows));
  71. sheet.addCell(new Label(1,rows,map.get("wx_xdan_data"),format1));
  72. sheet.addCell(new Label(2,rows,map.get("wx_back_data"),format1));
  73. sheet.addCell(new Label(3,rows,map.get("wx_danhao"),format1));
  74. sheet.addCell(new Label(4,rows,map.get("wx_product_num"),format1));
  75. sheet.addCell(new Label(5,rows,map.get("wx_mj_num"),format1));
  76. sheet.addCell(new Label(6,rows,map.get("wx_mj_guige"),format1));
  77. sheet.addCell(new Label(7,rows,map.get("wx_muhao"),format1));
  78. sheet.addCell(new Label(8,rows,map.get("wx_count"),format1));
  79. sheet.addCell(new Label(9,rows,map.get("wx_reason"),format1));
  80. sheet.addCell(new Label(10,rows,map.get("wx_baofei_muhao"),format1));
  81. sheet.addCell(new Label(11,rows,map.get("wx_baofei_count"),format1));
  82. rows++;
  83. }
  84. }
  85. book.write();
  86.  
  87. } catch (Exception e) {
  88. log.error(e);
  89. System.out.println(e);
  90. }finally{
  91. if(book!=null){
  92. try {
  93. book.close();
  94. } catch (Exception e) {
  95. e.printStackTrace();
  96. }
  97. }
  98. }
  99.  
  100. }

Java web项目JXl导出excel,(从eclipse上移动到tomact服务器上,之路径更改)的更多相关文章

  1. Java web项目 Jxl 读取excel 并保存到数据库,(从eclipse上移动到tomact服务器上,之路径更改,)

    最开始在eclipse中测试的时候,并没有上传到服务器上,后来发现,想要读取数据必须上传服务器然后把文件删除就可以了,服务器不可以直接读取外地的文件.用到jxl 1.上传到服务器 前端 <for ...

  2. Java web项目 上传图片保存到数据库,并且查看图片,(从eclipse上移动到tomact服务器上,之路径更改,包括显示图片和导出excel)

    //项目做完之后,在本机电脑运行完全正常,上传图片,显示图片,导出excel,读取excel等功能,没有任何问题,但是,当打成war包放到服务器上时,这些功能全部不能正常使用. 最大的原因就是,本机测 ...

  3. java中使用jxl导出Excel表格详细通用步骤

    该方法一般接收两个参数,response和要导出的表格内容的list. 一般我们将数据库的数据查询出来在页面进行展示,根据用户需求,可能需要对页面数据进行导出. 此时只要将展示之前查询所得的数据放入s ...

  4. Java Web利用POI导出Excel简单例子

    采用Spring mvc架构: Controller层代码如下 @Controller public class StudentExportController{ @Autowired private ...

  5. Java web 开发填坑记 2 -如何正确的创建一个Java Web 项目

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/72566261 本文出自[赵彦军的博客] Java web 开发填坑记 1-如何正确 ...

  6. 利用eclipse新建的java web项目没有部署描述符web.xml文件怎么办?

    原文转自:http://blog.csdn.net/suyu_yuan/article/details/50947007 利用eclipse新建的Java Web项目没有部署描述符web.xml文件, ...

  7. Eclipse部署Java Web项目到Tomcat出错

    1.今天,我打开Eclipse,准备将一个Java Web项目部署到Tomcat中, 结果弹出提示错误窗口,具体如下: (1)出错详情 Could not publish server configu ...

  8. 全网最详细的IDEA、Eclipse和MyEclipse之间于Java web项目发布到Tomcat上运行成功的对比事宜【博主强烈推荐】【适合普通的还是Maven方式创建的】(图文详解)

    不多说,直接上干货! IDEA [适合公司业务]全网最详细的IDEA里如何正确新建[普通或者Maven]的Java web项目并发布到Tomcat上运行成功[博主强烈推荐](类似eclipse里同一个 ...

  9. 【适合公司业务】全网最详细的IDEA里如何正确新建【普通或者Maven】的Java web项目并发布到Tomcat上运行成功【博主强烈推荐】(类似eclipse里同一个workspace下【多个子项目】并存)(图文详解)

    不多说,直接上干货! 首先,大家要明确,IDEA.Eclipse和MyEclipse等编辑器之间的新建和运行手法是不一样的. 如果是在Myeclipse里,则是File -> new -> ...

随机推荐

  1. centos8上redis5在生产环境的配置

    一,创建redis的数据和日志目录: [root@yjweb data]# mkdir /data/redis6379 [root@yjweb data]# mkdir /data/redis6379 ...

  2. 解决Mac下AndroidStudio内容时卡顿

    Mac下AndroidStudio在写代码的时候出现卡顿,小圆圈会一直转,此时我们应该检查下AndroidStudio的内存使用情况了. 1.点击左上角 AndroidStudio -- Prefer ...

  3. Mybatis项目搭建

    MyBatis是一个优秀的持久层框架.原生的jdbc操作存在大量的重复性代码(如注册驱动,创建连接,创建statement,结果集检测等).框架的作用就是把这些繁琐的代码封装. MyBatis通过XM ...

  4. 博客主题——cnbook

    主题预览 主题下载 gshang.cnbook.rar version:2020-05-29 gshang.cnbook@2.0.rar version:2020-08-25 .source-down ...

  5. SQL Server 列存储索引 第三篇:维护

    列存储索引分为两种类型:聚集的列存储索引和非聚集的列存储索引,在一个表上只能创建一个聚集索引,要么是聚集的列存储索引,要么是聚集的行存储索引,然而一个表上可以创建多个非聚集索引. 一,创建列存储索引 ...

  6. Linux exec族函数解析

    背景 在提到 vfork 函数时,我们提到了这个概念.为了更好地学习与运用,我们对exec族函数进行展开. exec函数族 介绍 有时我们希望子进程去执行另外的程序,exec函数族就提供了一个在进程中 ...

  7. python数据类型之dict(字典)

    dict字典 关注公众号"轻松学编程"了解更多. 1.概述 dict也是一种存储方式,类似于list和tuple,但是,字典采用键-值(key-value)的形式存储. 优点:具有 ...

  8. [Luogu P4147] 玉蟾宫 (网格DP)

    题面 传送门:https://www.luogu.org/problemnew/show/P4147 Solution 裸的求极大子矩阵 感谢wzj dalao的教学 首先,有一个很显然但很重要的结论 ...

  9. Python3网络学习案例四:编写Web Proxy

    代理服务器的定义和作用请走百度百科~ 1. Web Proxy的实现思路 这是基于上一篇"编写Web Server"写的,主要逻辑见下图: 我们要写的就是中间的Web Proxy部 ...

  10. P5958 【[POI2017]Sabotaż】

    P5958 [[POI2017]Sabotaż] 题意描述 在一棵以1号节点为根节点的树上,有很多纯洁的白点, BUT,突然有一个黑点出现(可能在任意位置) 它要染黑尽可能多的节点,而在一棵子树中, ...