Excel导出easypoi

easypoi依赖

文档:http://easypoi.mydoc.io/#text_197818

<dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-base</artifactId>
            <version>3.2.0</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-web</artifactId>
            <version>3.2.0</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-annotation</artifactId>
            <version>3.2.0</version>
        </dependency>

1.自定数据源方法一

@Override
	public void exportExcel(HttpServletResponse response, QueryFilter queryFilter)throws Exception {
		PageList<DeliveryHeader> deliveryDetails=query(queryFilter);
		List<Map<String,Object>> maps =deliveryDetails.getRows().stream().map(item->{
			Map<String,Object> m = new LinkedHashMap<>();
			//发货单号
			m.put("orderNo", item.getOrderNo());
//			SAP交货单号S
			m.put("sapDeliveryNumber", item.getSapDeliveryNumber());
//			生产商名称
			m.put("supplierName", item.getSupplierName());
//			客户名称
			m.put("customerName", item.getCustomerName());
			return m;
		}).collect(Collectors.toList());

		String title="交货管理列表";
		String sheetName="交货管理列表";
		ExportParams exportParams = new ExportParams(title,sheetName, ExcelType.HSSF);
		exportParams.setStyle(ExcelExportStatisticStyler.class);
		List<ExcelExportEntity> titleMap= ExcelUtil.getColumnPermission();
		HSSFWorkbook book = (HSSFWorkbook) ExcelExportUtil.exportExcel(exportParams, titleMap,maps);
		com.hotent.parts.util.ExcelUtil.downloadExcel(book, title, response);
	}

2.下面是自定数据源方法一

 

public CommonResult<String > exportBackDeliverHeaderExcel(HttpServletResponse response, QueryFilter queryFilter)throws Exception {
		PageList<DeliveryHeader> pageList=queryList(queryFilter);		
		List<DeliveryHeader> rows=pageList.getRows();
		for(DeliveryHeader deliveryHeader:rows){
			//单据状态
			String orderStatus=deliveryHeader.getOrderStatus();
			deliveryHeader.setOrderStatus(OrderStatusEnum.getEnum(orderStatus).getDesc());
		}
		String jsonString = JsonUtil.toJsonString(rows);
		List maps = JsonUtil.toBean(jsonString, List.class);
		String title="退货交货单列表";
		String sheetName="退货交货单列表";
		ExportParams exportParams = new ExportParams(title,sheetName, ExcelType.HSSF);
		exportParams.setStyle(ExcelExportStatisticStyler.class);
        //每一列的设置
		List<ExcelExportEntity> titleMap= ExcelUtil.getColumnPermission();
		HSSFWorkbook book = (HSSFWorkbook) ExcelExportUtil.exportExcel(exportParams, titleMap,maps);
		ExcelUtil.downloadExcel(book, title, response);
		return new CommonResult<String >( true,NsdCommonUtil.SuccessMsg);
	}

 

public static List<ExcelExportEntity>  getColumnPermission() throws IOException {
		List<ExcelExportEntity> entityList=new ArrayList<>();
			String columnJson = "{"orderNo":{"name":"退货发货单号","value":true,"poiWidth":18},"sapDeliveryNumber":{"name":"SAP退货交货单号","value":true,"poiWidth":18},"supplierName":{"name":"生产商名称","value":true,"poiWidth":18}}";
			JsonNode jsonNode = JsonUtil.toJsonNode(columnJson);
			Iterator<Entry<String, JsonNode>> it = jsonNode.fields();
			while (it.hasNext()){
                Entry<String, JsonNode> entry = it.next();
                JsonNode value = entry.getValue();
                if(value.get("value").asBoolean()) {
                	ExcelExportEntity entity = new ExcelExportEntity(value.get("name").asText(), entry.getKey(), value.get("poiWidth").isEmpty()? 18:value.get("poiWidth").asInt());
                	if (value.get("replace")!=null) {
                		String replace = value.get("replace").asText();
						String[] split = replace.split(",");
						entity.setReplace(split);
					}
                	if (value.get("numFormat")!=null) {
                		String numFormat = value.get("numFormat").asText();
                		entity.setNumFormat(numFormat);
					}
                	entityList.add(entity);
                }
            }
		
		return entityList;

		
	}

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值