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 ...
随机推荐
- Java数据结构——根据遍历结果构造二叉树
一.已知前序.中序.后序遍历结果的其中两种,还原二叉树. ①已知前序遍历结果:1,2,4,5,3,6,7 中序遍历结果:4,2,5,1,6,3,7还原二叉树后BFS出结果. TreeNode.java ...
- 【原创】Kuberneters-ConfigMap的实践
一.什么是ConfigMap ConfigMap翻译过来即为“配置字典”,在实际的生产环境中,应用程序配置经常需要且又较为复杂,参数.config文件.变量等如果直接打包到镜像中,将会降 ...
- python实现对列表的增删查修操作
#定义一个空列表 list_demo=[] #1,向列表中插入元素 def append_demo(): #第一种使用append,可以在列表末尾添加一个函数 for i in range(2): l ...
- python sqlite3简单操作
python sqlite3简单操作(原创)import sqlite3class CsqliteTable: def __init__(self): pass def linkSqlite3(sel ...
- Javascript常见数据类型API
1 - 内置对象 1.1 内置对象 JavaScript 中的对象分为3种:自定义对象 .内置对象. 浏览器对象 前面两种对象是JS 基础 内容,属于 ECMAScript: 第三个浏览器对象 ...
- Python字符串类型格式化之format方法
python字符串格式化一般使用 format() 方法,用法如下: <模板字符串>.format(<逗号分割的参数>) 其中模板字符串中可以由一个或多个 {} 组成的 槽 , ...
- WPF管理系统开发框架搭建指南,2020从入门到放弃
WPF技术是一个很不错的技术,但一直没有上手过正式的项目,趁在做这个医疗项目时,遂搭建一个WPF开发框架,目的是为了统一WPF开发并提高开发效率:我对WPF技术算是零基础,现学现卖,用这些不成体系的文 ...
- zstd和zip操作6g的文本
ssd是在固态硬盘上的时间 1.txt 7038308223 bytes 都是默认级别 ======================================== zstd-v1.4.4-w ...
- 漏洞重温之sql注入(六)
漏洞重温之sql注入(六) sqli-labs通关之旅 Less-26 进入第26关,首先我们可以从网页的提示看出本关是get型注入. 我们给页面添加上id参数后直接去查看源码. 需要关注的东西我已经 ...
- Android开发之recycleView详解代码,看完包你熟练掌握recycleView的用法。转自网络经典文章
来源 http://jinyudong.com/2014/11/13/Introduce-RecyclerView-%E4%B8%80/ 编辑推荐:稀土掘金,这是一个针对技术开发者的一个应用,你可以在 ...
