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;
}