java下载excel,excel从数据库获取数据
<!-- poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.14</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.14</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>3.14</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>3.14</version>
</dependency>
controller.java
@RequestMapping("/exportFile")
public void exportFile(TbCdeShAgentRoadRateInBean form,HttpServletResponse response){ OutputStream os=null;
try {
Workbook wb=wbglService.exportFile(form);
ByteArrayOutputStream bos=new ByteArrayOutputStream();
wb.write(bos);
response.setBufferSize(512);
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
SimpleDateFormat dfs=new SimpleDateFormat("yyyy年mm月dd日HH时mm分ss秒");
//Date end=dfs.parse();
String fileName="委办公路"+dfs.format(new Date())+".xlsx";
response.addHeader("Content-disposition", "attachment; filename=" + new String(fileName.getBytes("UTF-8"), "ISO8859-1"));
response.addHeader("Content-Length", String.valueOf(bos.toByteArray().length));
os=response.getOutputStream();
IOUtils.write(bos.toByteArray(),os);
} catch (Exception e) {
e.printStackTrace();
}finally{
IOUtils.closeQuietly(os);
}
}
service.java
public Workbook exportFile(TbCdeShAgentRoadRateInBean form) throws Exception{
TbCdeShAgentRoadRateInBean param=getSearchParam(form);
int count=iwbglDao.getCount(param);
int pageSize=1000;
List<TbCdeShAgentRoadRateOutBean> list=null;
//防止一次查询的数据量过大,导出服务器内存崩了
int totalPage=(new Double(Math.ceil(count/(pageSize*1.0)))).intValue();
Workbook wb=new SXSSFWorkbook();
Sheet sheet=wb.createSheet("委办公路");
// 设置表格默认列宽度为15个字节
sheet.setDefaultColumnWidth((short) 15); // 生成一个样式
CellStyle style =wb.createCellStyle(); //workbook.createCellStyle();
// 设置这些样式
Font font = wb.createFont();
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
style.setFont(font);
//标题行
Row rowTitle=sheet.createRow(0);
Cell cell=rowTitle.createCell(0);
cell.setCellStyle(style);
cell.setCellValue("序号");
//rowTitle.createCell(1).setCellValue("邮路名称"); cell=rowTitle.createCell(1);
cell.setCellStyle(style);
cell.setCellValue("邮路名称"); //rowTitle.createCell(2).setCellValue("邮路代码");
cell=rowTitle.createCell(2);
cell.setCellStyle(style);
cell.setCellValue("邮路代码");
//rowTitle.createCell(3).setCellValue("开行方式"); cell=rowTitle.createCell(3);
cell.setCellStyle(style);
cell.setCellValue("开行方式");
//rowTitle.createCell(4).setCellValue("代理商"); cell=rowTitle.createCell(4);
cell.setCellStyle(style);
cell.setCellValue("代理商");
//rowTitle.createCell(5).setCellValue("5T(元/车)"); cell=rowTitle.createCell(5);
cell.setCellStyle(style);
cell.setCellValue("5T(元/车)");
//rowTitle.createCell(6).setCellValue("8T(元/车)"); cell=rowTitle.createCell(6);
cell.setCellStyle(style);
cell.setCellValue("8T(元/车)");
//rowTitle.createCell(7).setCellValue("15T(元/车)"); cell=rowTitle.createCell(7);
cell.setCellStyle(style);
cell.setCellValue("15T(元/车)");
//rowTitle.createCell(8).setCellValue("25T(元/车)"); cell=rowTitle.createCell(8);
cell.setCellStyle(style);
cell.setCellValue("25T(元/车)");
//rowTitle.createCell(9).setCellValue("起始日期"); cell=rowTitle.createCell(9);
cell.setCellStyle(style);
cell.setCellValue("起始日期");
//rowTitle.createCell(10).setCellValue("结束日期"); cell=rowTitle.createCell(10);
cell.setCellStyle(style);
cell.setCellValue("结束日期");
int rowNum=1;
for(int currentPage=1;currentPage<=totalPage;currentPage++){
param.setSqlCurrentPage(currentPage);
param.setSqlPageSize(pageSize);
param.setDet(1L);
list=iwbglDao.selectList(param);
createExcelDataRow(sheet,list,rowNum);
}
return wb;
}
private int createExcelDataRow(Sheet sheet,List<TbCdeShAgentRoadRateOutBean> list,int rowNum){ for(TbCdeShAgentRoadRateOutBean b:list){
Row dataRow = sheet.createRow(rowNum);
dataRow.createCell(0).setCellValue(b.getRn());
dataRow.createCell(1).setCellValue(getDataValue(b.getMwayName()));
dataRow.createCell(2).setCellValue(getDataValue(b.getMwayCode()));
dataRow.createCell(3).setCellValue(getDataValue(b.getTransType()));
dataRow.createCell(4).setCellValue(getDataValue(b.getAgentCop()));
dataRow.createCell(5).setCellValue(getDataValue(b.getFiveT()));
dataRow.createCell(6).setCellValue(getDataValue(b.getEightT()));
dataRow.createCell(7).setCellValue(getDataValue(b.getFifteenT()));
dataRow.createCell(8).setCellValue(getDataValue(b.getTwentyFiveT()));
dataRow.createCell(9).setCellValue(getDataValue(b.getStartDate()));
//dataRow.getCell(9).setCellType(Cell.CELL_TYPE_STRING);
dataRow.createCell(10).setCellValue(getDataValue(b.getEndDate()));
//dataRow.getCell(10).setCellType(Cell.CELL_TYPE_STRING);
rowNum++;
}
return rowNum;
}
private String getDataValue(Object o){
return o==null?"":o.toString();
}
html
//导出数据
window.location.href="${path}/wbgl/exportFile?a=b&c=d"
java下载excel,excel从数据库获取数据的更多相关文章
- easyui-datagrid通过action从数据库获取数据的关键代码
实际上是结合struts2来从数据获取json格式的数据. 关键代码: GetUserAction.java代码 package com.log.control; import java.io ...
- Loadrunner脚本优化-参数化之关联MySQL数据库获取数据
脚本优化-参数化之关联MySQL数据库获取数据 by:授客 QQ:1033553122 测试环境: Loadrunner 11 Win7 64位 实操: 1. 安装MySQL ODBC驱动程序 O ...
- 如何用asp.net MVC框架、highChart库从sql server数据库获取数据动态生成柱状图
如何用asp.net MVC框架.highChart库从sql server数据库获取数据动态生成柱状图?效果大概是这样的,如图: 请问大侠这个这么实现呢?
- AngularJs从数据库获取数据并显示
哈哈,昨天下午和今天早上,花上一些时间,学习AngularJs,仅是粗略预览一下.很好,非常好. 由于手上有开发ASP.NET MVC环境,就在这测试下,去数据库获取数据并显示数据. 数据库表创建,添 ...
- Python使用Flask框架,结合Highchart处理csv数据(引申-从文件获取数据--从数据库获取数据)
参考链接:https://www.highcharts.com.cn/docs/process-text-data-file 1.javascript代码 var options = { chart: ...
- 从Excel、CSV文件获取数据
#region 从Excel获取数据 /// <summary> /// 从Excel获取数据 /// </summary> /// <param name=" ...
- 用struts2标签如何从数据库获取数据并在查询页面显示。最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变量。
最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变 ...
- Excel VBA连接MySql 数据库获取数据
编写Excel VBA工具,连接并操作Mysql 数据库. 系统环境: OS:Win7 64位 英文版 Office 2010 32位 英文版 1.VBA连接MySql前的准备 Tools---> ...
- 动态从数据库获取数据,省市县三级联动,有校验,导出Excel模板
话不多说,看效果图,直接上代码. sheet 商户表 hideSheet ,功能完成后隐藏的Sheet,用于储存下拉框中的信息,(以一定的规则将所需数据存储在表格中). 下面是代码 部分数据需要在导 ...
随机推荐
- python 基础的用法新发现
引用的发现: # 引用的处理 因为变量指的是某一内存地址 引用变量实际是引用一个固定的内存地址,# 当这个变量中的内容变了之后,他的内存地址不变, 所以引用者也动态的得到了变化的变量l1=[1,2,3 ...
- openresty 使用lua-resty-shell 执行shell 脚本
lua-resty-shell 是一个很不错的项目,让我们可以无阻塞的执行shell命令,之间的通信 是通过socket (一般是unix socket) 环境准备 docker-compose 文件 ...
- centos 虚拟机中最小化安装,无法上网的解决方法
无法上网原因:因为最小化安装以后,centos 默认未开启网卡 解决方法进入 /etc/sysconfig/network-scripts/ifcfg-enp0s3 文件中 进入编辑模式,将 ONBO ...
- scrapy 项目通过scrapyd部署
年前的时候采用scrapy 爬取了某网站的数据,当时只是通过crawl 来运行了爬虫,现在还想通过持续的爬取数据所以需要把爬虫部署起来,查了下文档可以采用scrapyd来部署scrapy项目,scra ...
- [转]TA-Lib 安装
转自:https://mrjbq7.github.io/ta-lib/install.html Installation You can install from PyPI: $ pip instal ...
- 阅读DMA Controller Core 官方手册
阅读DMA Controller Core 官方手册 DMA控制器框架图 怎样去设定一个DMA控制器 实例化DMA控制器 参数配置界面如下图所示: 对于width of the DMA length ...
- HIMSS EMRAM新版标准将于2018年1月1日生效
https://www.cn-healthcare.com/article/20170223/content-489862.html HIMSS EMRAM新版标准将于2018年1月1日生效 2017 ...
- vscode修改code runner插件默认使用的编译器
code runner的原理就是自动帮你完成在控制台中输入切换路径和编译源代码以及运行编译好的程序的指令 编译指令是根据配置文件中一开始写好的模板来执行的 不同语言对应一条指令,运行code runn ...
- 日志框架学习(log4j2+slf4j)
现在比较吊的就是这个log4j2这个日志框架了,功能强悍.slf4j是个日志框架的统一接口,方便扩展,切换框架啥的. 配置SSM+log4J2+SL4J https://blog.csdn.net/c ...
- Ngui Tween 组合动画 group
使用NGUI的Tween做补间动画,难免会涉及组合各种Tween.最常用的就是 Scale+Alpha组合 做淡入淡出了.那么如何控制 播放完一个Tween 后在 播放另一个Tween呢? 利用del ...