下载并导出数据到execl中
下载poi-3.6-20091214.jar。下载地址例如以下:
http://download.csdn.net/detail/evangel_z/3895051
1.jsp
<button type="button" class="btn btn-mini" onClick="location.href='<%=basePath%>/bankcard/exportEffectThirdData?
begintime=${begintime}&endtime=${endtime}&page=1'">导出有效订单</button>
2.后台代码处理:
controller 处理:
@Get("exportReturnThirdData")
public void exportReturnThirdListData(Invocation inv,@Param("begintime") String startTime,
@Param("endtime") String endTime){
HttpServletResponse response = inv.getResponse();
// response.setContentType("application/xls");
response.setContentType("application/x-download");
response.reset();
response.setContentType("bin");
String header = "attachment;filename=returnThirdData.xls";
response.addHeader("Content-Disposition", header);
String[] heads = { "订单日期", "订单号", "商品名称", "商品属性", "渠道名称", "支付银行卡","支付账号", "成本价", "卖出价", "卖出收入", "发货日期", "外订单审核日期", "退货日期", "取消日期" };
List<FenqiGoodsOrder> returnOrders = fenqiGoodsOrderListService
.exportReturnThirdList(startTime, endTime);
String path = "";
OrderDetailExportExeclUtil.exeportListData(heads, returnOrders,response);
}
导出到execl处理逻辑:
public static void exeportListData(String[] heads,List<FenqiGoodsOrder> returnOrders,HttpServletResponse response){
// 第一步。创建一个webbook,相应一个Excel文件
HSSFWorkbook wb = new HSSFWorkbook();
// 第二步。在webbook中加入一个sheet,相应Excel文件里的sheet
HSSFSheet sheet = wb.createSheet("第三方退货订单明细");
// 第三步,在sheet中加入表头第0行,注意老版本号poi对Excel的行数列数有限制short
HSSFRow row = sheet.createRow((int) 0);
// 第四步。创建单元格,并设置值表头 设置表头居中
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
HSSFCell cell=null;
for(int h=0;h<heads.length;h++){
cell = row.createCell((short) h);
cell.setCellValue(heads[h]);
cell.setCellStyle(style);
}
// 第五步,写入实体数据 实际应用中这些数据从数据库得到,
for (int i = 0; i < returnOrders.size(); i++)
{
row = sheet.createRow((int) i + 1);
FenqiGoodsOrder goodsOrder = (FenqiGoodsOrder) returnOrders.get(i);
// 第四步,创建单元格,并设置值
row.createCell((short) 0).setCellValue(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(goodsOrder.getCreateTime()));
row.createCell((short) 1).setCellValue(goodsOrder.getOrderNo());
row.createCell((short) 2).setCellValue(goodsOrder.getGoodName());
row.createCell((short) 3).setCellValue(goodsOrder.getGoodType());
row.createCell((short) 4).setCellValue(goodsOrder.getChannelName());
row.createCell((short) 5).setCellValue(goodsOrder.getCardNo());
row.createCell((short) 6).setCellValue(goodsOrder.getAccountNo());
row.createCell((short) 7).setCellValue(goodsOrder.getPurchasePrice());//成本价
row.createCell((short) 8).setCellValue(goodsOrder.getSellPrice());//卖出价
row.createCell((short) 9).setCellValue(goodsOrder.getSellEarning());//卖出收入
if(goodsOrder.getDeliveryTime() !=null && !goodsOrder.getDeliveryTime().equals("")){
row.createCell((short) 10).setCellValue(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(goodsOrder.getDeliveryTime()));
}
if(goodsOrder.getAuditTime() !=null && !goodsOrder.getAuditTime().equals("")){
row.createCell((short) 11).setCellValue(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(goodsOrder.getAuditTime()));
}
if(goodsOrder.getReturnTime() !=null && !goodsOrder.getReturnTime().equals("")){
row.createCell((short) 12).setCellValue(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(goodsOrder.getReturnTime()));
}
if(goodsOrder.getCancelDate() !=null && !goodsOrder.getCancelDate().equals("")){
row.createCell((short) 13).setCellValue(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(goodsOrder.getCancelDate()));
}
}
// 第六步,将文件存到指定位置
try
{
wb.write(response.getOutputStream());
}
catch (Exception e)
{
e.printStackTrace();
}
}
下载并导出数据到execl中的更多相关文章
- 手把手教你springboot中导出数据到excel中
手把手教你springboot中导出数据到excel中 问题来源: 前一段时间公司的项目有个导出数据的需求,要求能够实现全部导出也可以多选批量导出(虽然不是我负责的,我自己研究了研究),我们的项目是x ...
- MySQL导出数据到文件中的方法
MySQL导出数据到文件中的方法 1.导出数据到txt文件中实例:把数据表studscoreinfo中所有数据导出到指定的位置方法:select * from 表名 into outfile 指定导出 ...
- 1.ASP.NET MVC使用EPPlus,导出数据到Excel中
好久没写博客了,今天特地来更新一下,今天我们要学习的是如何导出数据到Excel文件中,这里我使用的是免费开源的Epplus组件. 源代码下载:https://github.com/caofangshe ...
- 【转】c# winform DataGridView导出数据到Excel中,可以导出当前页和全部数据
准备工作就是可以分页的DataGridView,和两个按钮,一个用来导出当前页数据到Excel,一个用来导出全部数据到Excel 没有使用SaveFileDialog,但却可以弹出保存对话框来 先做导 ...
- 利用NPOI导出数据到Execl
相信很多童鞋都开发过Execl的导入导出功能,最近产品中无论是后台数据分析的需要,还是前端满足用户管理的方便,都有Execl导入导出的维护需求产生. 以前做这个功能,如果是web,利用HttpCont ...
- python 导出数据到excel 中,一个好用的导出数据到excel模块,XlsxWriter
最近公司有项目需要导出数据到excel,首先想到了,tablib,xlwt,xlrd,xlwings,win32com[还可以操作word],openpyxl,等模块但是 实际操作中tablib 写入 ...
- 关于2020.04.26【MySQL导出数据到文件中的方法】的补充
之前导出的数据文件中没有表的列名,感觉不够完整,摸索一下发现带表列名导出也是可以的,只试了导出txt和csv两种文件类型的方法. 1.导出数据到txt文件中(包含数据表列名)的方法:先选择 ...
- C#自定义导出数据到Excel中的类封装
using System; using System.IO; using System.Data; using System.Collections; using System.Data.OleDb; ...
- MySQL导出数据到文件中
一.导出一张表数据 把test_time表中的数据导出成txt 文件 mysql> show global variables like '%secure%'; +--------------- ...
随机推荐
- http 头信息详解(转)
HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616.HTTP协议采用了请求/响应模型.客户 ...
- 彻底理解Javascript 中的 Promise(-------------------------------***---------------------------------)
ES6原生提供了 Promise 对象. 到底是何方妖怪呢?打出来看看: 所谓 Promise,就是一个对象,用来传递异步操作的消息.它代表了某个未来才会知道结果的事件(通常是一个异步操作),并且这个 ...
- XCode下的iOS单元测试
XCode 内置了 OCUnit 单元测试框架,但目前最好用的测试框架应该是 GHUnit.通过 GHUnit + OCMock 组合,我们可以在 iOS 下进行较强大的单元测试功能.本文将演示如何在 ...
- eclipse 启动报错 java was started but returned code=13
eclipse启动不了,出现“Java was started but returned exit code=13......”对话框如下 我的解决方法是:去控制面板--程序--卸载程序和功能下面查看 ...
- 设计模式之单例模式(php实现)
github地址:https://github.com/ZQCard/design_pattern 单例模式:顾名思义就就是创建单个实例的模式. 优点:保证一个类仅有一个实例,并提供一个访问它的全局访 ...
- win10 下常用shell命令
shell脚本命令 单行过长如何换行 在一行的结尾加上^即可 , 打印当前目录 %cd%
- BindDepthStencilState
nx sdk里面有这么一个接口 真坑 对于stencil fun op有两组值分别对应front back face 现在调用这个接口只能设置back 不能设置front跟了memory 有段全是0把 ...
- 2017.7.1 nginx反向代理服务器域名解析配置(已验证可使用)
下载地址:http://learning.happymmall.com/ 前提:ftpserver已经开启,并且设置为: 1.获得安装文件 2.修改配置文件 2.1 修改conf/nginx.conf ...
- Intellij output 中文乱码
使用intellij有一段时间了,intellij output中文乱码,每次使用这两点解决,就可以解决乱码问题. 1.修改启动参数 修改安装Intellij目录下的C:\Program Files ...
- EffectiveJava(17)要么为继承而设计,要么禁止继承
1.如果为了继承而设计类,那么该类必须有文档说明它可覆盖的方法的自用性.对于每个公有的 或受保护的方法或者构造器,它的文档必须指明该方法或者构造器调用了那些可覆盖的方法,是以 什么顺序调用的,每个调用 ...