java实现点击查询数据生成excel文件并下载
须先导入关键maven包
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.15</version>
</dependency>
请求的controller:
@GetMapping("/deposits/downloadexcel")
public void downloadExcel (HttpServletRequest request, HttpServletResponse response){
try {
//命名列名
List<String> cellNameList = new ArrayList<>();
cellNameList.add("充值时间");
cellNameList.add("充值金额");
cellNameList.add("说明");
//给文件命名
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
String dateformat = simpleDateFormat.format(new Date());
String excelPath="充值记录"+dateformat+".xls";
//给表命名
String title= "充值记录";
HSSFWorkbook excel = Excel.createExcel(title, cellNameList);
List<Deposit> Deposits = depositService.findAll();
int row = 1;
//从数据库读数据然后循环写入
for(Deposit deposit : Deposits){
List<String> excelData = new ArrayList<>();
excelData.add(deposit.getCreatedAt().toString());
excelData.add(deposit.getPrice().toString());
excelData.add(deposit.getComment());
excel = Excel.createExcelData(excel, excelData, row);
row++;
}
//输出数据
//FileOutputStream fos = new FileOutputStream(excelPath);
OutputStream out = null;
//防止中文乱码
String headStr = "attachment; filename=\"" + new String(excelPath.getBytes("utf-8"), "ISO8859-1" ) + "\"";
//response.setContentType("octets/stream");
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", headStr);
out = response.getOutputStream();
//将excel写入流
excel.write(out);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
工具类:
public class Excel {
public static HSSFWorkbook createExcel(String sheetName, List<String> cellNameList) {
HSSFWorkbook excel = new HSSFWorkbook();
HSSFSheet sheet = excel.createSheet(sheetName);
HSSFRow row = sheet.createRow(0);
int cellIndex = 0;
for (String cellName : cellNameList) {
HSSFCell cell = row.createCell(cellIndex);
cell.setCellValue(cellName);
cellIndex++;
}
return excel;
}
public static HSSFWorkbook createExcelData(HSSFWorkbook excel,List<String> excelData,int rowIndex){
HSSFRow row=excel.getSheetAt(0).createRow(rowIndex);
for(int i = 0; i < excelData.size(); i++){
row.createCell(i).setCellValue(excelData.get(i));
}
return excel;
}
}
excel表格样式可以通过代码设置,具体设置百度,这里就不写了
实现效果
点击导出数据便能实现数据下载
不知为何浏览器不支持粘贴图片 贼难受 就写到这儿了
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.15</version>
</dependency>
java实现点击查询数据生成excel文件并下载的更多相关文章
- Java操作Jxl实现导出数据生成Excel表格数据文件
实现:前台用的框架是Easyui+Bootstrap结合使用,需要引入相应的Js.Css文件.页面:Jsp.拦截请求:Servlet.逻辑处理:ClassBean.数据库:SQLserver. 注意: ...
- java利用poi生成excel文件后下载本地
1.该功能需要poi的jar包,链接: http://pan.baidu.com/s/1migAtNq 密码: 38fx. 2.首先新建一个实体类,用以存放单个数据 public class Test ...
- 【原创】POI 生成Excel文件并下载
ι 版权声明:本文为博主原创文章,未经博主允许不得转载. 效果图: 实现 1.在pom中添加依赖: <!-- https://mvnrepository.com/artifact/org.apa ...
- java生成Excel文件,下载
pom引入poi的maven依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId> ...
- 后端根据查询条件生成excel文件返回给前端,vue进行下载
一.HTML代码 <el-col :xs="2" :md="2" :sm="3"> <el-button type=&qu ...
- Java导出页面数据或数据库数据至Excel文件并下载,采用JXL技术,小demo(servlet实现)
public class ExportExcelServlet extends HttpServlet { /** * */ private static final long serialVersi ...
- python通过xlwt模块直接在网页上生成excel文件并下载
urls: from django.conf.urls import url, include from . import views urlpatterns = [ ... url(r'^domai ...
- 实现excel导入导出功能,excel导入数据到页面中,页面数据导出生成excel文件
今天接到项目中的一个功能,要实现excel的导入,导出功能.这个看起来思路比较清楚,但是做起了就遇到了不少问题. 不过核心的问题,大家也不会遇到了.每个项目前台页面,以及数据填充方式都不一样,不过大多 ...
- java 写入数据到Excel文件中_Demo
=======第一版:基本功能实现======= import com.google.common.collect.Maps; import org.apache.log4j.Logger; impo ...
随机推荐
- linux计算命令
1.在lammps中通过car文件导出data文件 (进入工作目录xxx cd xxx/ msi2lmp.exe xxx -class I -frc clayff -i -ignore > ou ...
- 快醒醒,C# 9 中又来了一堆关键词 init,record,with
一:背景 1. 讲故事 .NET5 终于在 2020-08-25 也就是前天发布了第八个预览版,这么多的预览版搞得我都麻木了,接踵而来的就是更多的新特性加入到了 C# 9 中,既然还想呆在这条船上,得 ...
- 类的加载,链接和初始化——1运行时常量池(来自于java虚拟机规范英文版本+本人的翻译和理解)
加载(loading):通过一个特定的名字,找到类或接口的二进制表示,并通过这个二进制表示创建一个类或接口的过程. 链接:是获取类或接口并把它结合到JVM的运行时状态中,以让类或接口可以被执行 初始化 ...
- Qt setMouseTracking使用
Qt setMouseTracking使用(转载) bool mouseTracking 这个属性保存的是窗口部件跟踪鼠标是否生效. 如果鼠标跟踪失效(默认),当鼠标被移动的时候只有在至少一个鼠标 ...
- WebApi之DOM的基本介绍
1.1.1 什么是DOM 文档对象模型(Document Object Model,简称DOM),是 W3C 组织推荐的处理可扩展标记语言(html或者xhtml)的标准编程接口. W3C 已 ...
- GeneralUpdate2.1.0发布
GeneralUpdate GeneralUpdate是基于.net framwork开发的一款(c/s应用)自动升级程序.该组件将更新的核心部分抽离出来方便应用于多种项目当中目前适用于wpf,控制台 ...
- Azure Storage 系列(一)入门简介
一,引言 今天作为新的Azure 资源介绍的开篇,我们来学习一个新的服务,Azure Storage.众所周知,我们实际在开发过程中,会需要存储一些比如说日志,图片,等等,各种类型的数据.比如说存储图 ...
- Jigsaw pre-training:摆脱ImageNet,拼图式主干网络预训练方法 | ECCV 2020
Jigsaw pre-training以拼图的方式从检测数据集中生成用于主干网络预训练的数据集,而不需要额外的预训练数据集,如ImageNet.另外为了让网络更好的适应拼图数据,论文提出ERF-ada ...
- 精华技巧,学会这几招可以假装是Python高手
Python里面的技巧真的是太多了,菜鸟如何假装自己的是高手呢,下面教大家几招快速变成老司机的招数,尤其是在实战的项目中,用上这几招一定让你周围的同事刮目相看,哇这个代码有两把刷子. 很多人学习pyt ...
- JAVA中 错误代码是 the public type must be defined in its own file 解决方法 android开发 java编程
一般是由于定义的JAVA类同文件名不一致: 解决方法: 1.把文件名修改同XYZ一样的名字: 2.把类名修改成同文件名: