1.首先前端代码如下:

一个导出按钮:<input id="export" class="btn btn-primary" type="button" onclick="a();" value="导出"/>

实现按钮的点击事件:

function a(currentPage) {
console.log("你好");
var dateFrom = document.getElementById("todayStart").value;
var dateTo = document.getElementById("todayEnd").value;
var url = "<c:url value='/'/>communityOrder/export?dateFrom="+dateFrom+"&dateTo="+dateTo;
window.location.href = url;
}

其中dateTo和var dateFrom是条件查询,url是请求后台的路径

2.后台代码如下:

/**
* 导出数据
* @param response
*/
@RequestMapping(value = "/export")
public void export(HttpSession session,HttpServletResponse response, HttpServletRequest request,
Model model,
@RequestParam(value = "dateFrom",required = false)String dateFrom,
@RequestParam(value = "dateTo",required = false)String dateTo,
@ModelAttribute("pageSupport")PageResult pageResult) throws IOException{
Date dDateFrom = null;
Date dDateTo = null;
Long startTime=null;
Long endTime=null;
// 处理申请日
if (!ComUtil.isEmpty(dateFrom) && dateFrom.matches("2[0-9]{7}")) {
dDateFrom = ComUtil.parseDate(dateFrom + "000000");
startTime=dDateFrom.getTime()/1000;
}
if (!ComUtil.isEmpty(dateTo) && dateTo.matches("2[0-9]{7}")) {
dDateTo = ComUtil.parseDate(dateTo + "235959");
endTime=dDateTo.getTime()/1000;
}
//三大步
//第一步:查询数据
Integer totalCount =communityOrderService.getAllCount(startTime,endTime);
List<CommunityOrderObject> list = communityOrderService.findByPage(startTime,endTime,1, totalCount);
//第二步:将列表写成excel文件流
//平时如何写excel?
//1.创建一个excel的工作簿(创建是97格式还是2007的格式)
try (HSSFWorkbook workbook = new HSSFWorkbook()) {

//2.创建一个工作表(sheet)
//workbook.createSheet();
HSSFSheet sheet = workbook.createSheet("物业订单");

//3.先创建第一行,写excel表格:标题一列的信息
HSSFRow headerRow = sheet.createRow(0);
headerRow.createCell(0).setCellValue("编号");
headerRow.createCell(1).setCellValue("会员编号");
headerRow.createCell(2).setCellValue("订单号");
headerRow.createCell(3).setCellValue("房间编号");
headerRow.createCell(4).setCellValue("支付金额");
headerRow.createCell(5).setCellValue("支付方式");
headerRow.createCell(6).setCellValue("支付时间");
headerRow.createCell(7).setCellValue("创建时间");

//创建其他行,数据行
for (CommunityOrderObject CommunityOrderObject : list) {
HSSFRow dataRow = sheet.createRow(sheet.getLastRowNum()+1);
dataRow.createCell(0).setCellValue(CommunityOrderObject.getId());
dataRow.createCell(1).setCellValue(CommunityOrderObject.getMobile());
dataRow.createCell(2).setCellValue(CommunityOrderObject.getSn());
dataRow.createCell(3).setCellValue(CommunityOrderObject.getRoomId());
dataRow.createCell(4).setCellValue(CommunityOrderObject.getPayFee());
if(StringUtils.equals(CommunityOrderObject.getPayType(),"offline")){
dataRow.createCell(5).setCellValue("线下支付");
}
if(StringUtils.equals(CommunityOrderObject.getPayType(),"alipay")){
dataRow.createCell(5).setCellValue("线上支付");
}
String payTime = CommunityOrderObject.getPayTime();
/* Date d =new Date();
if(null!=payTime&&!"".equals(payTime.trim())){
d= new Date(Long.valueOf(payTime)*1000l);
}
String format1 = sdf2.format(d);*/
if(null!=payTime&&!"".equals(payTime)&&"1970-01-01".equals(payTime.trim())){
dataRow.createCell(6).setCellValue("");
}else{
dataRow.createCell(6).setCellValue(payTime);
}
Date createdOn = CommunityOrderObject.getCreatedOn();
String format1 = sdf2.format(createdOn);
dataRow.createCell(7).setCellValue(format1);
}

//第三步:将文件流写入响应,交给客户端浏览器
//1。设置文件类型
//文件名
StringBuffer sb = new StringBuffer();
Date date = new Date();
String time = sdf2.format(date);
sb.append(time).append("物业订单.xls");
String downFilename= sb.toString();
//获取文件的MIME类型:
String contentType = request.getContentType();
//String contentType=" multipart/form-data";两种方式都可以
//将MIME类型放入响应
response.setContentType(contentType);
//2,文件名和附件打开方式
//浏览器类型
String agent = request.getHeader("user-agent");
//附件名编码,解决中文乱码问题
downFilename = ComUtil.encodeDownloadFilename(downFilename, agent);
//获取附件的名字和下载方式
String contentDisposition="attachment;filename="+downFilename;
//将附件名字和下载方式放入响应头信息中
response.setHeader("Content-Disposition", contentDisposition);
response.setCharacterEncoding("UTF-8");

//3.写入到响应
workbook.write(response.getOutputStream());
}//end of try (HSSFWorkbook workbook = new HSSFWorkbook()) {
}

在这里需要注意的是条件查询和没有条件查询结果的导出

在java中实现数据导入excel表格中的更多相关文章

  1. python制作简单excel统计报表3之将mysql数据库中的数据导入excel模板并生成统计图

    python制作简单excel统计报表3之将mysql数据库中的数据导入excel模板并生成统计图 # coding=utf-8 from openpyxl import load_workbook ...

  2. C# 将List中的数据导入csv文件中

    //http://www.cnblogs.com/mingmingruyuedlut/archive/2013/01/20/2849906.html C# 将List中的数据导入csv文件中   将数 ...

  3. 如何将数据库中的数据导入到Solr中

    要使用solr实现网站中商品搜索,需要将mysql数据库中数据在solr中创建索引. 1.需要在solr的schema.xml文件定义要存储的商品Field. 商品表中的字段为: 配置内容是: < ...

  4. 利用java反射机制实现读取excel表格中的数据

    如果直接把excel表格中的数据导入数据库,首先应该将excel中的数据读取出来. 为了实现代码重用,所以使用了Object,而最终的结果是要获取一个list如List<User>.Lis ...

  5. MySQL中导入Excel表格中的数据

    在数据库中建立好响应的数据库.表(参考excel表格中列中的名字和内容): 将excel表格另存为txt文件,选择“文本文件(制表符分割)”: 打开相应的txt文件,只留下要导入的数据(windows ...

  6. oracle数据库中导入Excel表格中的数据

    1.点击[工具]-->[ODBC 导入器],如图: 2.在导入器里选择第一个[来自ODBC的数据],用户名/系统DSN-->填写[Excel Files],输入用户名和密码,点击 [连接] ...

  7. c#导出ListView中的数据到Excel表格

    1.添加组件:Microsoft.Office.Interop.Excel 步骤:右键点击“引用”--->添加引用--->COM--->Microsoft.Office.Intero ...

  8. Java将数据库数据导入EXCEL

    一般的数据库数据怎么导入excel中呢??这让人非常疑惑,今天我找到了一个方法能够实现 须要导入一个第三方包下载地址 详细内容例如以下: 里面含有指导文档,index.html里面含有怎样读取数据库文 ...

  9. jstl-将List中的数据展示到表格中

    功能: 使用jstl将List中的数据动态展示到Jsp表格中,并实现隔行换色功能. 效果图: Jsp代码: <%@ page import="java.util.ArrayList&q ...

随机推荐

  1. 前端性能优化 —— reflow(回流)和repaint(重绘)

    简要:整个在浏览器的渲染过程中(页面初始化,用户行为改变界面样式,动画改变界面样式等)reflow(回流)和repaint(重绘) 会大大影响web性能,尤其是手机页面.因此我们在页面设计的时候要尽量 ...

  2. 【Java】递归递推的应用

    利用阶乘公式来计算组合式: 程序设计思想: 根据公式来计算组合数的大小,从键盘输入n,k的值,设计一个计算阶乘的大小,如果输入的数a为1或0,则直接return 1,否则运用递归,计算a-1的阶乘,直 ...

  3. 使用 JProbe 调试 Linux 内核(转)

    https://liam.page/2018/04/28/debug-in-Linux-kernel-jprobe/

  4. eclipse spring-boot-mybatis 的记录

    例子来源: https://gitee.com/lfalex/spring-boot-example.git spring-boot-mybatis 例子使用 mysql5.1.46 版本; 环境:e ...

  5. 一个LinkedBlockingQueue线程安全的例子

    一个LinkedBlockingQueue线程安全的例子 package llj.mf.ace; import java.util.ArrayList; import java.util.HashSe ...

  6. awk 复习

    awk 的再次学习!!!! awk 的一般模式 awk '{parttern + action }' {filename} , 提取/etc/passwd 的用户 awk -F ":&quo ...

  7. 刷榜中ASO优化中下载量与评论之间的对应比

    刷榜中ASO优化中下载量与评论之间是怎么样对应,我们都知道,在ASO优化的过程中,ASO优化师在做下载量后的二至三天,都会顺带着做一下评论.这时候问题就来了,下载量与评论的比例关系应该如何确定呢?最近 ...

  8. 深度学习基础(四) Dropout_Improving neural networks by preventing co-adaptation of feature detectors

    该笔记是我快速浏览论文后的记录,部分章节并没有仔细看,所以比较粗糙. 从摘要中可以得知,论文提出在每次训练时通过随机忽略一半的feature detectors(units)可以极大地降低过拟合.该方 ...

  9. msmq访问格式

    //集群测试,以下格式不行(应是Host映射之类没配置OK) //_MSMQPath = @"FormatName:DIRECT=TCP:msmq496-ha\private$\496-10 ...

  10. MySQL使用root权限创建用户并授权

    MySql篇 1.下载并安装Mysql (1)下载地址 MySQL-8.0下载地址 (2)Mysql配置 1.home目录下命令行执行:vi    .bash_profile来配置MySql绝对路径 ...