在java中实现数据导入excel表格中
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表格中的更多相关文章
- python制作简单excel统计报表3之将mysql数据库中的数据导入excel模板并生成统计图
python制作简单excel统计报表3之将mysql数据库中的数据导入excel模板并生成统计图 # coding=utf-8 from openpyxl import load_workbook ...
- C# 将List中的数据导入csv文件中
//http://www.cnblogs.com/mingmingruyuedlut/archive/2013/01/20/2849906.html C# 将List中的数据导入csv文件中 将数 ...
- 如何将数据库中的数据导入到Solr中
要使用solr实现网站中商品搜索,需要将mysql数据库中数据在solr中创建索引. 1.需要在solr的schema.xml文件定义要存储的商品Field. 商品表中的字段为: 配置内容是: < ...
- 利用java反射机制实现读取excel表格中的数据
如果直接把excel表格中的数据导入数据库,首先应该将excel中的数据读取出来. 为了实现代码重用,所以使用了Object,而最终的结果是要获取一个list如List<User>.Lis ...
- MySQL中导入Excel表格中的数据
在数据库中建立好响应的数据库.表(参考excel表格中列中的名字和内容): 将excel表格另存为txt文件,选择“文本文件(制表符分割)”: 打开相应的txt文件,只留下要导入的数据(windows ...
- oracle数据库中导入Excel表格中的数据
1.点击[工具]-->[ODBC 导入器],如图: 2.在导入器里选择第一个[来自ODBC的数据],用户名/系统DSN-->填写[Excel Files],输入用户名和密码,点击 [连接] ...
- c#导出ListView中的数据到Excel表格
1.添加组件:Microsoft.Office.Interop.Excel 步骤:右键点击“引用”--->添加引用--->COM--->Microsoft.Office.Intero ...
- Java将数据库数据导入EXCEL
一般的数据库数据怎么导入excel中呢??这让人非常疑惑,今天我找到了一个方法能够实现 须要导入一个第三方包下载地址 详细内容例如以下: 里面含有指导文档,index.html里面含有怎样读取数据库文 ...
- jstl-将List中的数据展示到表格中
功能: 使用jstl将List中的数据动态展示到Jsp表格中,并实现隔行换色功能. 效果图: Jsp代码: <%@ page import="java.util.ArrayList&q ...
随机推荐
- hdfs OutOfMemoryError
大量推送本地文件到hdfs如下 hadoop fs -put ${local_path} ${hdfs_path}报错. Exception in thread "main" ja ...
- Java是如何加载资源文件的?(源码解毒)
上文提到应老板要求开发一个测试工具能方便的加载存于文件中的测试参数,当时考虑既然是测试,把测试参数文件和测试类放在一起岂不是很方便,但是老板说:我的需求是你把测试参数文件放到统一文件夹下比如resou ...
- python语法_嵌套
列表里面每个元素可以是不同的数据类型,每一个元素也可以是一个列表或者元组等, a = [[1,2,3],"a",13,(5,7,9,"dasd")] b = a ...
- [03-01]JDBC基础
JDBC是什么? 1.java Database Connectivity:java访问数据库的解决方案: 2.用相同的方式访问不同的数据库,以实现与具体数据库无关的java操作界面: 3.JDBC定 ...
- oo第二单元作业总结
oo第二单元博客总结 在第一单元求导结束后,迎来了第二单元的多线程电梯的问题,在本单元前两次作业中个人主要应用两个线程,采用“生产者-消费者”模式和共享数据变量的方式解决问题.在第三次作业中加入多个电 ...
- Oracle归档开启和更改
运用 Xshell 客户端工具链接所在的 oracle 服务器 1.先进入数据库里面去 [root@DBSTANDBY ~]# su - oracle [oracle@DBSTANDBY ~]$ ...
- Mac ssh启动和停止
原文地址:http://blog.csdn.net/cwj649956781/article/details/37913637 mac本身安装了ssh服务,默认情况下不会开机自启 1.启动sshd服务 ...
- 微信小程序wx.getLocation()获取经纬度及JavaScript SDK调用腾讯地图API获取某一类地址
简介 腾讯位置服务为微信小程序提供了基础的标点能力.线和圆的绘制接口等地图组件和位置展示.地图选点等地图API位置服务能力支持,使得开发者可以自由地实现自己的微信小程序产品. 在此基础上,腾讯位置服务 ...
- Nginx反向代理部署NodeJS项目
在nginx配置文件种的http节点下: server { listen 8005; server_name localhost; location /{ proxy_set_header X_Rea ...
- 部署的docker image总是太大,怎么办?
sudo docker images REPOSITORY TAG IMAGE ID CREATED ...