场景
在已经实现简单的Excel导出的前提下,要结合具体业务实现查询数据库,并
遍历赋值到excel上。
实现
使用MyBatisPlus从数据库查询数据
Map<String,Object> param=new HashMap<String,Object>();
param.put("in_order_id",id);
WmsInOrderVO inOrders=this.inOrderMapper.getInOrder(id);
if(inOrders.getGmtCreat()!=null){
inOrders.setCreatTimeStr(DateConvert.formatDateToString(inOrders.getGmtCreat(),DateStyle.YYYY_MM_DD));
}
if(inOrders.getFinishTime()!=null){
inOrders.setFinishTimeStr(DateConvert.formatDateToString(inOrders.getFinishTime(),DateStyle.YYYY_MM_DD));
}
List<WmsInOrderList> inOrderLists=this.inOrderListMapper.selectByMap(param);
List<Long> inOrderlistIds=new ArrayList<>();
for(WmsInOrderList l:inOrderLists){
inOrderlistIds.add(l.getId());
}
List<WmsInOrderDetailsVO> inOrderDetails=new ArrayList<>();
if(inOrderlistIds.size()>0){
inOrderDetails=this.inOrderDetailsMapper.getInOrderDetailsByIds(inOrderlistIds);
}
遍历生成Excel数据
x++;
tempSheet.createRow(x).createCell(y+2).setCellValue("入库单明细");
tempSheet.getRow(x).createCell(y+3).setCellValue("");
tempSheet.getRow(x).createCell(y+4).setCellValue("");
tempSheet.getRow(x).createCell(y+5).setCellValue("");
tempSheet.getRow(x).createCell(y+6).setCellValue("");
tempSheet.getRow(x).createCell(y+7).setCellValue("");
tempSheet.getRow(x).createCell(y+8).setCellValue("");
tempSheet.getRow(x).createCell(y+9).setCellValue("");
tempSheet.getRow(x).getCell(y+2).setCellStyle(alignStyle5);
tempSheet.getRow(x).getCell(y+3).setCellStyle(alignStyle5);
tempSheet.getRow(x).getCell(y+4).setCellStyle(alignStyle5);
tempSheet.getRow(x).getCell(y+5).setCellStyle(alignStyle5);
tempSheet.getRow(x).getCell(y+6).setCellStyle(alignStyle5);
tempSheet.getRow(x).getCell(y+7).setCellStyle(alignStyle5);
tempSheet.getRow(x).getCell(y+8).setCellStyle(alignStyle5);
tempSheet.getRow(x).getCell(y+9).setCellStyle(alignStyle5);
CellRangeAddress region1 = new CellRangeAddress(x,x,y+2,y+9);
tempSheet.addMergedRegion(region1);
x++;
tempSheet.createRow(x).createCell(y).setCellValue("序号");
tempSheet.getRow(x).createCell(y+1).setCellValue("物料编号");
tempSheet.getRow(x).createCell(y+2).setCellValue("物料名称");
tempSheet.getRow(x).createCell(y+3).setCellValue("数量");
tempSheet.getRow(x).createCell(y+4).setCellValue("单位");
tempSheet.getRow(x).createCell(y+5).setCellValue("仓储单元编号");
tempSheet.getRow(x).createCell(y+6).setCellValue("托盘码");
tempSheet.getRow(x).createCell(y+7).setCellValue("批次");
tempSheet.getRow(x).getCell(y).setCellStyle(alignStyle3);
tempSheet.getRow(x).getCell(y+1).setCellStyle(alignStyle3);
tempSheet.getRow(x).getCell(y+2).setCellStyle(alignStyle3);
tempSheet.getRow(x).getCell(y+3).setCellStyle(alignStyle3);
tempSheet.getRow(x).getCell(y+4).setCellStyle(alignStyle3);
tempSheet.getRow(x).getCell(y+5).setCellStyle(alignStyle3);
tempSheet.getRow(x).getCell(y+6).setCellStyle(alignStyle3);
tempSheet.getRow(x).getCell(y+7).setCellStyle(alignStyle3);
x++;
for(WmsInOrderDetailsVO v:inOrderDetails){
tempSheet.createRow(x).createCell(y).setCellValue(v.getId());
tempSheet.getRow(x).createCell(y+1).setCellValue(v.getMaterielNumber());
tempSheet.getRow(x).createCell(y+2).setCellValue(v.getMaterielName());
tempSheet.getRow(x).createCell(y+3).setCellValue(v.getNum());
tempSheet.getRow(x).createCell(y+4).setCellValue(v.getUntiy());
tempSheet.getRow(x).createCell(y+5).setCellValue("");
tempSheet.getRow(x).createCell(y+6).setCellValue(v.getTrayNumber());
tempSheet.getRow(x).createCell(y+7).setCellValue(v.getBatch());
tempSheet.getRow(x).getCell(y).setCellStyle(alignStyle);
tempSheet.getRow(x).getCell(y+1).setCellStyle(alignStyle);
tempSheet.getRow(x).getCell(y+2).setCellStyle(alignStyle);
tempSheet.getRow(x).getCell(y+3).setCellStyle(alignStyle);
tempSheet.getRow(x).getCell(y+4).setCellStyle(alignStyle);
tempSheet.getRow(x).getCell(y+5).setCellStyle(alignStyle);
tempSheet.getRow(x).getCell(y+6).setCellStyle(alignStyle);
tempSheet.getRow(x).getCell(y+7).setCellStyle(alignStyle);
x++;
}