java导出excel弹出下载框_JavaWeb导出Excel文件并弹出下载框
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文件并弹出下载框相关推荐
- 给出以下程序,制作makefile文件,编译出可执行文件
给出以下程序,制作makefile文件,编译出可执行文件 方法一(通过静态库方式): 方法二(直接): main.c /* main.c */ #include "mylinux1.h&qu ...
- ssm框架验证码图片加载不出_基于SSM框架的文件图片上传/下载功能实现
前一段时间很多做毕业设计的同学问:如何写图片和文件的上传下载功能,今天正好有时间,所以就做了一个案例,详细的讲解这个功能. 框架结构: 对于很多做过开发的而言,上传功能肯定都用过,而且用到的场景很多, ...
- think.class.php下载,PHP_ThinkPHP实现将本地文件打包成zip下载,首先,将FileToZip.class文件放到T - phpStudy...
ThinkPHP实现将本地文件打包成zip下载 首先,将FileToZip.class文件放到ThinkPHP/Extend/Library/ORG/Util/文件夹中,FileToZip.class ...
- java上传与下载文件_JavaWeb之实现文件上传与下载
1.什么是上传和下载? - 数据上传是指客户端向服务器上传数据,客户端向服务器发送的所有请求都属于数据上传.文件上传是数据上传的一种特例,指的是客户端向服务器上传文件.即将保存在客户端的文件上传至服 ...
- maven 文件上传下载_使用Maven将文件上传和下载到S3
maven 文件上传下载 多年来,我已经看到许多团队以许多不同的方式使用Maven. Maven可用于许多ci / cd任务,而无需使用额外的管道代码,或者可用于在运行某些测试之前准备开发环境. 通常 ...
- C# .Net 视频下载功能(本机文件)及转发下载功能(Http远程文件)
/*服务器本机文件下载*/ Response.Clear(); Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader ...
- qfile超过下载文件容量_如何下载视频网站上的视频,这里有方法
你是否在网上看到某个视频,非常喜欢,但是却苦于不知道如何将其下载下来.下面,我来给大家介绍一个好用的网站和软件. 这个网站软件叫 硕鼠,是一个专门下载网站视频和转换视频的网站和软件.下面我来介绍一下如 ...
- uc下载php怎么打开网页,php让浏览器下载txt等类型的文件 uc浏览器导入txt 浏览器打开txt 360极速浏览器规则tx...
如果让浏览器访问一个txt文件,会发生什么呢?比如访问localhost/test/test.txt,浏览器会直接把TXT文件的内容 直接显示在浏览器上,而不是下载下来. 但是也不是所有的文件都会被直 ...
- java swing 弹出登录框_用JavaSwing制作一个简单的登录框
我就懒的一条一条注释了,之前已经都讲过了,直接上代码了. 劝一下大家,打代码不要直接复制,这样是永远都学习不会的,要自己动手敲,自己要有思维. 我这个只供你们自己参考吧,请不要盲目复制,要学习精髓,这 ...
- java excel 使用ExcelWriter 百万级数据导出
一.Java 通过hutool工具类ExcelWriter 导出 运用到多线程分页查询 这个采用的是Java的utool工具类ExcelWriter 导出 踩过一些坑,尽量用一条sql 将所有数据查询 ...
最新文章
- 苹果CMS V10 播放记录_苹果cms新手入门安装配置教程
- 11组软件工程组队项目计划安排及项目介绍——失误招领系统
- SQL中除数为0处理情况演示
- react-router 源码浅析
- Spring Boot笔记-利用Quartz进行定时任务,利用websocket推送到浏览器(界面为thymeleaf)
- MYSQL 更新字段,向字段追加字符串
- php变量控制结构与函数,LAMP兄弟连原创视频教程(PHP笔记一--变量,流程控制结构,函数)...
- 有关802.11的Beacon帧
- android 9.0打开文件管理器,安卓 通过intent调用系统文件管理器打开指定路径目录...
- 前端学习路线(详细)
- 玩玩小程序:使用 WebApi 交互打造原生的微信小程序 - 图灵小书架
- 张丽俊最新演讲:要像竹子一样扎根,你终会一飞冲天
- java memorystream 包_C#字符串string 、byte[]、MemoryStream、Base64String的相互转换
- 基于反事实的因果推理Causal inference based on counterfactuals--一万六千字文献详细解读(因果关系的推理应用)【全文总结】
- 初学Python可能会遇见的小程序
- 叮咚! 你有一份节日祝福请查收~
- Nooploop空循环 TOFSense-F 高刷新频率 激光测距传感器 模块 红外测距测高
- 行星齿轮动力学模型matlab程序代码
- 高职计算机期末质量分析,计算机考试质量分析
- linux cts运行不起来,CTS测试过程及遇到问题的解决方法