JavaWeb导出Excel文件并弹出下载框_java

一、引言

在Java Web开发中经常涉及到报表,最近做的项目中需要实现将数据库中的数据显示为表格,并且实现导出为Excel文件的功能。

二、相关jar包

使用POI可以很好的解决Excel的导入和导出的问题,POI下载地址:
poi-3.6-20091214.jar

三、关键代码

首先导入上述jar包。
在生成excel时一般数据源形式为一个List,下面把生成Excel格式的代码贴出来:

/**
       * 以下为生成Excel操作
       */
      // 1.创建一个workbook,对应一个Excel文件
      HSSFWorkbook wb = new HSSFWorkbook();
      // 2.在workbook中添加一个sheet,对应Excel中的一个sheet
      HSSFSheet sheet = wb.createSheet("XXX表");
      // 3.在sheet中添加表头第0行,老版本poi对excel行数列数有限制short
      HSSFRow row = sheet.createRow((int) 0);
      // 4.创建单元格,设置值表头,设置表头居中
      HSSFCellStyle style = wb.createCellStyle();
      // 居中格式
      style.setAlignment(HSSFCellStyle.ALIGN_CENTER);

      // 设置表头
      HSSFCell cell = row.createCell(0);
      cell.setCellValue("表头1");
      cell.setCellStyle(style);

      cell = row.createCell(1);
      cell.setCellValue("表头2");
      cell.setCellStyle(style);

      cell = row.createCell(2);
      cell.setCellValue("表头3");
      cell.setCellStyle(style);

      cell = row.createCell(3);
      cell.setCellValue("表头4");
      cell.setCellStyle(style);

      cell = row.createCell(4);
      cell.setCellValue("表头5");
      cell.setCellStyle(style);

生成excel格式后要将数据写入excel:

// 循环将数据写入Excel
      for (int i = 0; i < lists.size(); i++) {
        row = sheet.createRow((int) i + 1);
        List list= lists.get(i);
        // 创建单元格,设置值
        row.createCell(0).setCellValue(list.getXXX());
        row.createCell(1).setCellValue(list.getXXX());
        row.createCell(2).setCellValue(list.getXXX());
        row.createCell(3).setCellValue(list.getXXX());
        row.createCell(4).setCellValue(list.getXXX());
      }

之后将生成的Excel以流输出。
*不弹出下载框

FileOutputStream out =new FileOutputStream("E:/XXX.xls");
wb.write(out);
out.close();

*弹出下载框

String fileName = "XXX表";
      ByteArrayOutputStream os = new ByteArrayOutputStream();
      wb.write(os);
      byte[] content = os.toByteArray();
      InputStream is = new ByteArrayInputStream(content);
      // 设置response参数,可以打开下载页面
      res.reset();
      res.setContentType("application/vnd.ms-excel;charset=utf-8");
      res.setHeader("Content-Disposition", "attachment;filename="
          + new String((fileName + ".xls").getBytes(), "iso-8859-1"));
      ServletOutputStream out = res.getOutputStream();
      BufferedInputStream bis = null;
      BufferedOutputStream bos = null;

      try {
        bis = new BufferedInputStream(is);
        bos = new BufferedOutputStream(out);
        byte[] buff = new byte[2048];
        int bytesRead;
        // Simple read/write loop.
        while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
          bos.write(buff, 0, bytesRead);
        }
      } catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
      } finally {
        if (bis != null)
          bis.close();
        if (bos != null)
          bos.close();
      }

完成以上操作之后即可跳转到其他页面。
同时POI还可以将Excel上传解析显示在网页中,这个另一篇文章总结,敬请期待!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索JavaWeb导出Excel
, JavaWeb弹出下载框
JavaWeb下载Excel
javaweb导入导出excel、java web导出excel、javaweb导出excel表格、java web导出txt文件、javaweb poi导出excel,以便于您获取更多的相关知识。

时间: 2025-01-27 08:40:34

JavaWeb导出Excel文件并弹出下载框_java的相关文章

struts2.0-为什么java导出excel表格没有弹出下载框

问题描述 为什么java导出excel表格没有弹出下载框 /** 导出存支列表 */ public void exportDepositList(){ HttpServletResponse response = Struts2Utils.getResponse(); ServletOutputStream sos = null; WritableWorkbook wb = null; List depositList = null; String str = getSql(); deposit

easyui导出excel无法弹出下载框的快速解决方法_jquery

之前用ajax做的,代码如下(ActionUrl为一般处理程序ashx的路径): $.ajax({ url: ActionUrl + '?action=export&ID=' + $('#fm_ID').val(), dataType: 'json', success: function (jsonstr) { //top.art.dialog.tips('导出成功!'); } }); 没办法弹出下载框. 直接浏览器地址栏输入相关页面地址并打开可以弹出下载框下载,考虑可能是iframe的缘故.

java导出Excel弹出下载框

问题描述 action中:publicvoidgetDownloadFile(){if(this.obj!=null){Integerdepid=Integer.parseInt(this.depId);Filefile=this.employeeService.getInputStream(depid);//request=(HttpServletRequest)context.get(ServletActionContext.HTTP_REQUEST);//response=(HttpSer

ie11的excel导出-java poi excel导出时,在ie11上面弹出下载框时文件名后缀为xxx.xls[1]

问题描述 java poi excel导出时,在ie11上面弹出下载框时文件名后缀为xxx.xls[1] 测试在ie8或ie9上面是正确的,但是在ie11上面就会出现这个[1].

JSP下载。中文文件名不弹出下载框。控制台中文显示????

问题描述 JSP下载.中文文件名不弹出下载框.控制台中文显示????麻烦各位了.谢谢<%@pagecontentType="text/html;charset=GB2312"%><%@pageimport="java.io.*"%><%response.reset();try{Stringstr=request.getParameter("name1");str=newString(str.getBytes(&quo

win8系统里删除文件不再弹出提示框

  从Windows 8的推出,应该有不少的用户会去尝试使用Windows 8系统吧,但有使用WIN8的朋友问,为什么在WIN8系统里删除文件不再弹出提示框了呢?在这里小编为你在解答吧. 在Windows 7中,用户如果删除一个文件,系统会弹出"删除文件"提示框,询问用户是否确定要把此文件放入回收站. 在Windows 8中,系统不会再弹出这个回收站警告,而是直接将用户选定删除的文件放入回收站. Windows 8回收站的这一变化只是即将到来的一系列文件管理变动中的一部分,微软工程师J

在新窗口下载xls文件,弹出下载对话框,点击保存后关闭新窗口

问题描述 我在jsp画面中点超链接,在新窗口执行servlet下载xls文件,当出现下载对话框时,点保存按钮怎么关闭执行servlet的新窗口呢?请各位高手指教!!!!! 解决方案 解决方案二:哪位高手关注一下呀?解决方案三:使用javascript吧resp.setContentType("text/html;charset=GBK");PrintWriterout=resp.getWriter();out.println("<scriptlanguage="

c# geckofx浏览器控件点击下载链接无法弹出下载框

问题描述 本人最近在用c#做一款winform软件,但在内嵌geckofx浏览器时其他页面显示都是正常的,但是就是点击网页中一些下载的链接时无法弹出如其他浏览器那样的下载窗口,请问是什么原因啊,有什么办法么?谢谢各位专家了.

struts2.1.8 ,使用自带json插件struts2-json-plugin-2.1.8.1.客户端得不到json对象,弹出下载action提示框

问题描述 struts2.1.8 ,使用自带struts2-json-plugin-2.1.8.1.jar把action对象返回客户端的json对象.注释配置,客户端总是弹出下载页面,打开后是正常的json数据,各位可以帮忙看看?代码很简单,困老好几天了,非常感谢,代码如下: Java代码 import org.apache.struts2.convention.annotation.ParentPackage;import org.apache.struts2.convention.annot