订单导出示例

订单导出,在实际开发中会遇到订单导出功能,在该功能中可能需要合并单元格,嵌套实体,嵌套集合列表等需求。

在尝试easyExcel导出方式以后,要完成上述需求easyExcel可能有点吃力。但是easypoi相对来说简单易用。建议尝试。

导出单列:@Excel(name = "xx", width = 20, needMerge = true)

导出嵌套列表:@ExcelCollection(name = "xxx")

导出嵌套实体:@ExcelEntity(name="xxx")文章中没有举例。原理同嵌套列表

我们就可以看到EasyPoi的核心注解Excel,通过在对象上添加Excel注解,可以将对象信息直接导出到Excel中去,下面对注解中的属性做个介绍;

name: Excel中的列名;
width:指定列的宽度;
needMerge:是否需要纵向合并单元格;
format:当属性为时间类型时,设置时间的导出导出格式;
desensitizationRule:数据脱敏处理,3_4表示只显示字符串的前3位和后4位,其他为*号;replace:对属性进行替换;
suffix:对数据添加后缀。

示例:

导出订单实体


import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.excel.annotation.ExcelCollection;
import cn.afterturn.easypoi.excel.annotation.ExcelEntity;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;


public class OrderExportExcel implements Serializable
{
	@ApiModelProperty(value = "订单号")
	@Excel(name = "订单号", width = 20, needMerge = true)
	private String orderNo;

	
	@ApiModelProperty(value = "订单商品")
	@ExcelCollection(name = "商品列表")
	private List<MyOrderItemListExcel> orderItemListExcelList;

    //其他属性	

    //getter setter....
}

导出嵌套实体:


import cn.afterturn.easypoi.excel.annotation.Excel;
import com.alibaba.excel.annotation.ExcelIgnore;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

public class MyOrderItemListExcel implements Serializable
{
	@ApiModelProperty(value = "商品名称")
	@Excel(name = "商品名称", width = 50)
	private String name;
    
    //其他属性

    //getter setter....
	
}

接口示例:


	@ApiOperation(value = "订单导出", notes = "订单导出")
	@RequestMapping(value = "export", method = RequestMethod.GET)
	public void exportOrder(@ApiParam(value = "订单状态") @RequestParam(value = "orderStatus", required = false) String orderStatus,
			@ApiParam(value = "订单号") @RequestParam(value = "orderNo", required = false) String orderNo,
			@ApiParam(value = "下单手机号") @RequestParam(value = "phone", required = false) String phoneNumber,
			@ApiParam(value = "开始时间") @RequestParam(value = "startTime", required = false) String startTime,
			@ApiParam(value = "结束时间") @RequestParam(value = "endTime", required = false) String endTime, HttpServletRequest request,
			HttpServletResponse response)
	{
		adminOrderService.exportOrder( orderStatus, orderNo, phoneNumber, startTime, endTime, request, response);
	}
	@Override
	public void exportOrder(String orderStatus, String orderNo, String phoneNumber, String startTime, String endTime,
			HttpServletRequest request, HttpServletResponse response)
	{

		List<JSONObject> orderAll = getOrderAll(orderStatus, orderNo, phoneNumber, startTime, endTime, 1, 100);

		List<OrderExportExcel> orders = JSONArray
				.parseArray(JSONObject.toJSONStringWithDateFormat(orderAll, "yyyy-MM-dd HH:mm:ss", SerializerFeature.WriteDateUseDateFormat),
						OrderExportExcel.class);
		log.info("获取所有订单完成size={}", orders.size());

		ModelMap map = new ModelMap();
		ExportParams params = new ExportParams("订单列表", "订单列表", ExcelType.HSSF);
		map.put(NormalExcelConstants.DATA_LIST, orders);
		map.put(NormalExcelConstants.PARAMS, params);
		map.put(NormalExcelConstants.CLASS, OrderExportExcel.class);
		map.put(NormalExcelConstants.FILE_NAME, "订单列表");

		PoiBaseView.render(map, request, response, NormalExcelConstants.EASYPOI_EXCEL_VIEW);
	}

导出示例:

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值