所需maven
<!-- https://mvnrepository.com/artifact/net.sourceforge.javacsv/javacsv -->
<dependency>
<groupId>net.sourceforge.javacsv</groupId>
<artifactId>javacsv</artifactId>
<version>2.0</version>
</dependency>
public void exportOrder(OrderPar orderPar,HttpServletResponse getResponse){
//查询需要导出得数据
orderPar.setPageNum((orderPar.getPageNum().equals(0))?1:orderPar.getPageNum());
orderPar.setPageNum(((orderPar.getPageNum().equals(1))?1:(orderPar.getPageNum()*orderPar.getPageSize())-1)-1);
//查询供应商订单
List<Order> orderList=this.orderExtMapper.supplierFindOrderList(orderPar);
//查询总页数
Integer count =this.orderExtMapper.findPOrderCountByUserId(orderPar);
for (int i=0;i<orderList.size();i++){
//根据商品id查询商品名称
ResponseBase<BusGoodsWithBLOBsDto> goodslist=busGoodsServiceFeign.detail(orderList.get(i).getGoodsId());
if (goodslist.getData()!=null){
orderList.get(i).setName(goodslist.getData().getName());
orderList.get(i).setSupplierName(goodslist.getData().getSupplierName());
orderList.get(i).setLogoImg(goodslist.getData().getLogoImg());
orderList.get(i).setPrice(goodslist.getData().getPrice()/100);
orderList.get(i).setCouponPrice(goodslist.getData().getDiscountPrice()/100);
orderList.get(i).setSelfCoding(goodslist.getData().getSelfCoding());
//goodsCartList.get(i).setPostage(goodslist.getData().getPostage());
}
//根据规格id查询规格
ResponseBase<BusGoodsSpecs> SpecDetail=busGoodsServiceFeign.getSpecDetail(orderList.get(i).getGoodsSpecId());
if (SpecDetail.getData()!=null){
String SpecDetailName=(StringUtils.isBlank(SpecDetail.getData().getName()))?"":SpecDetail.getData().getName();
orderList.get(i).setGoodsSpecsName(SpecDetailName);
}
}
try {
// 创建CSV写对象
List<Order> ls=new ArrayList<Order>();
for (int i = 0; i <orderList.size(); i++) {
switch (orderList.get(i).getPayType()){
case 0:orderList.get(i).setPayName("微信支付");
case 1:orderList.get(i).setPayName("支付宝支付");
case 2:orderList.get(i).setPayName("银联支付");
}
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if (orderList.get(i).getCreateTime()!=null){
orderList.get(i).setCreatDate(DateUtils.DateToString(orderList.get(i).getCreateTime(),"yyyy-MM-dd HH:mm:ss"));
}
if (orderList.get(i).getPayTime()!=null){
orderList.get(i).setPayDate(sf.format(orderList.get(i).getPayTime()));
}
if (orderList.get(i).getConsignTime()!=null){
orderList.get(i).setConsignDate(sf.format(orderList.get(i).getConsignTime()));
}
if (orderList.get(i).getReceiveTime()!=null){
orderList.get(i).setReceivingDate(sf.format(orderList.get(i).getReceiveTime()));
}
switch (orderList.get(i).getPayType()){
case 0:orderList.get(i).setStatusName("待支付");
case 1:orderList.get(i).setStatusName("取消支付");
case 2:orderList.get(i).setStatusName("待发货");
case 3:orderList.get(i).setStatusName("已发货");
case 4:orderList.get(i).setStatusName("已签收");
case 5:orderList.get(i).setStatusName("已退货");
case 6:orderList.get(i).setStatusName("待退款");
case 7:orderList.get(i).setStatusName("已退款");
case 8:orderList.get(i).setStatusName("已完成");
}
ls.add(orderList.get(i));
}
//写入临时文件
File tempFile = File.createTempFile("vehicle", ".csv");
CsvWriter csvWriter = new CsvWriter(tempFile.getCanonicalPath(),',', Charset.forName("UTF-8"));
// 写表头
long s= System.currentTimeMillis();
System.err.println();
String[] headers = {"订单编号","订单状态","支付方式","支付时间","发货时间","确认收货时间","供应商名称","供应商自编码","商品名称","结算单价","数量","结算总价","订单创建时间","购买者账号"};
csvWriter.writeRecord(headers);
for (Order stu : ls) {
csvWriter.write(String.valueOf(stu.getOrderNum()));
csvWriter.write(String.valueOf(stu.getStatusName()));
csvWriter.write(String.valueOf(stu.getPayName()));
csvWriter.write(String.valueOf(stu.getPayDate()));
csvWriter.write(String.valueOf(stu.getConsignDate()));
csvWriter.write(String.valueOf(stu.getReceivingDate()));
csvWriter.write(String.valueOf(stu.getSupplierName()));
csvWriter.write(stu.getSelfCoding());
csvWriter.write(String.valueOf(stu.getName()));
csvWriter.write(String.valueOf(stu.getCouponPrice()));
csvWriter.write(String.valueOf(stu.getAmount()));
csvWriter.write(String.valueOf(stu.getCouponPrice()));
csvWriter.write(String.valueOf(stu.getCreatDate()
));
csvWriter.write(String.valueOf(stu.getUserId()));
csvWriter.endRecord();
}
csvWriter.close();
long e=System.currentTimeMillis();
System.err.println(e-s);;
/**
* 写入csv结束,写出流
*/
java.io.OutputStream out = getResponse.getOutputStream();
byte[] b = new byte[10240];
java.io.File fileLoad = new java.io.File(tempFile.getCanonicalPath());
getResponse.reset();
getResponse.setContentType("application/csv");
getResponse.setHeader("content-disposition", "attachment; filename=order.csv");
long fileLength = fileLoad.length();
String length1 = String.valueOf(fileLength);
getResponse.setHeader("Content_Length", length1);
java.io.FileInputStream in = new java.io.FileInputStream(fileLoad);
int n;
while ((n = in.read(b)) != -1) {
out.write(b, 0, n); //每次写入out1024字节
}
in.close();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
java 导出csv文件通过web下载
最新推荐文章于 2024-07-17 13:05:59 发布