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

发布于 2020-12-22|

复制链接

摘记: 一、引言在Java Web开发中经常涉及到报表,最近做的项目中需要实现将数据库中的数据显示为表格,并且实现导出为Excel文件的功能。二、相关jar包使用POI可以很好的解决Excel的导入和导出的问题,POI下载地址:

poi-3. ..

一、引言在Java Web开发中经常涉及到报表,最近做的项目中需要实现将数据库中的数据显示为表格,并且实现导出为Excel文件的功能。二、相关jar包使用POI可以很好的解决Excel的导入和导出的问题,POI下载地址: poi-3.6-20091214.jar三、关键代码首先导入上述jar包。

在生成excel时一般数据源形式为一个List,下面把生成Excel格式的代码贴出来:

```java

/**

* 以下为生成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:

```java

// 循环将数据写入Excel

for (int i = 0; i 之后将生成的Excel以流输出。

*不弹出下载框

```java

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

wb.write(out);

out.close();

```

*弹出下载框

```java

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上传解析显示在网页中,这个另一篇文章总结,敬请期待!

java导出excel弹出下载框_JavaWeb导出Excel文件并弹出下载框相关推荐

  1. 给出以下程序,制作makefile文件,编译出可执行文件

    给出以下程序,制作makefile文件,编译出可执行文件 方法一(通过静态库方式): 方法二(直接): main.c /* main.c */ #include "mylinux1.h&qu ...

  2. ssm框架验证码图片加载不出_基于SSM框架的文件图片上传/下载功能实现

    前一段时间很多做毕业设计的同学问:如何写图片和文件的上传下载功能,今天正好有时间,所以就做了一个案例,详细的讲解这个功能. 框架结构: 对于很多做过开发的而言,上传功能肯定都用过,而且用到的场景很多, ...

  3. think.class.php下载,PHP_ThinkPHP实现将本地文件打包成zip下载,首先,将FileToZip.class文件放到T - phpStudy...

    ThinkPHP实现将本地文件打包成zip下载 首先,将FileToZip.class文件放到ThinkPHP/Extend/Library/ORG/Util/文件夹中,FileToZip.class ...

  4. java上传与下载文件_JavaWeb之实现文件上传与下载

    1.什么是上传和下载? -  数据上传是指客户端向服务器上传数据,客户端向服务器发送的所有请求都属于数据上传.文件上传是数据上传的一种特例,指的是客户端向服务器上传文件.即将保存在客户端的文件上传至服 ...

  5. maven 文件上传下载_使用Maven将文件上传和下载到S3

    maven 文件上传下载 多年来,我已经看到许多团队以许多不同的方式使用Maven. Maven可用于许多ci / cd任务,而无需使用额外的管道代码,或者可用于在运行某些测试之前准备开发环境. 通常 ...

  6. C# .Net 视频下载功能(本机文件)及转发下载功能(Http远程文件)

    /*服务器本机文件下载*/ Response.Clear(); Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader ...

  7. qfile超过下载文件容量_如何下载视频网站上的视频,这里有方法

    你是否在网上看到某个视频,非常喜欢,但是却苦于不知道如何将其下载下来.下面,我来给大家介绍一个好用的网站和软件. 这个网站软件叫 硕鼠,是一个专门下载网站视频和转换视频的网站和软件.下面我来介绍一下如 ...

  8. uc下载php怎么打开网页,php让浏览器下载txt等类型的文件 uc浏览器导入txt 浏览器打开txt 360极速浏览器规则tx...

    如果让浏览器访问一个txt文件,会发生什么呢?比如访问localhost/test/test.txt,浏览器会直接把TXT文件的内容 直接显示在浏览器上,而不是下载下来. 但是也不是所有的文件都会被直 ...

  9. java swing 弹出登录框_用JavaSwing制作一个简单的登录框

    我就懒的一条一条注释了,之前已经都讲过了,直接上代码了. 劝一下大家,打代码不要直接复制,这样是永远都学习不会的,要自己动手敲,自己要有思维. 我这个只供你们自己参考吧,请不要盲目复制,要学习精髓,这 ...

  10. java excel 使用ExcelWriter 百万级数据导出

    一.Java 通过hutool工具类ExcelWriter 导出 运用到多线程分页查询 这个采用的是Java的utool工具类ExcelWriter 导出 踩过一些坑,尽量用一条sql 将所有数据查询 ...

最新文章

  1. 苹果CMS V10 播放记录_苹果cms新手入门安装配置教程
  2. 11组软件工程组队项目计划安排及项目介绍——失误招领系统
  3. SQL中除数为0处理情况演示
  4. react-router 源码浅析
  5. Spring Boot笔记-利用Quartz进行定时任务,利用websocket推送到浏览器(界面为thymeleaf)
  6. MYSQL 更新字段,向字段追加字符串
  7. php变量控制结构与函数,LAMP兄弟连原创视频教程(PHP笔记一--变量,流程控制结构,函数)...
  8. 有关802.11的Beacon帧
  9. android 9.0打开文件管理器,安卓 通过intent调用系统文件管理器打开指定路径目录...
  10. 前端学习路线(详细)
  11. 玩玩小程序:使用 WebApi 交互打造原生的微信小程序 - 图灵小书架
  12. 张丽俊最新演讲:要像竹子一样扎根,你终会一飞冲天
  13. java memorystream 包_C#字符串string 、byte[]、MemoryStream、Base64String的相互转换
  14. 基于反事实的因果推理Causal inference based on counterfactuals--一万六千字文献详细解读(因果关系的推理应用)【全文总结】
  15. 初学Python可能会遇见的小程序
  16. 叮咚! 你有一份节日祝福请查收~
  17. Nooploop空循环 TOFSense-F 高刷新频率 激光测距传感器 模块 红外测距测高
  18. 行星齿轮动力学模型matlab程序代码
  19. 高职计算机期末质量分析,计算机考试质量分析
  20. linux cts运行不起来,CTS测试过程及遇到问题的解决方法

热门文章

  1. html基础之 input:type
  2. 拷贝一个用户下的所有表和数据到另外一个库
  3. ios控件 UIViewController
  4. Android 开发错误集锦
  5. 8.携程架构实践 --- 监控
  6. 1.看板方法---解决敏捷管理者的困境
  7. 17.TCP/IP 详解卷1 --- TCP: 传输控制协议
  8. 56. SAMBA 服务器
  9. codeforces 679B
  10. 如何给网站添加支付宝支付功能