<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.0.5</version>
</dependency>
实体类
@Data
public class EquipmentExcelVO {
@ApiModelProperty(value = "设备编号")
@ExcelProperty(value = "设备编号", index = 1)
private String equipmentNum;
@ApiModelProperty("设备类型")
@ExcelProperty(value = "设备类型", index = 2)
private String equipmentType;
@ApiModelProperty("设备型号")
@ExcelProperty(value = "设备型号", index = 3)
private String spec;
@ApiModelProperty(value = "工序类型")
@ExcelProperty(value = "可用工序类型", index = 4)
private String processType;
@ExcelProperty(value = "设备状态 0正常 1-故障 2-维修", index = 5)
private String status;
}
工具类
package com.finshine.finaps.web.util;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.support.ExcelTypeEnum;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.List;
/**
* @author Yuan Hui
* @description
* @since 2023-01-10 14:41
*/
public class ExcelUtil {
public static void export(HttpServletResponse response, String fileName,
Class cls, List dataList)
throws IOException {
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
String fname = URLEncoder.encode(fileName, "utf-8");
response.setHeader("Content-disposition",
"attachment;filename=" + fname + ExcelTypeEnum.XLSX.getValue());
LongestMatchColumnWidthStyleStrategy longestMatchColumnWidthStyleStrategy =
new LongestMatchColumnWidthStyleStrategy();
EasyExcel.write(response.getOutputStream(), cls)
.sheet("sheet1")
.registerWriteHandler(longestMatchColumnWidthStyleStrategy)
.doWrite(dataList);
response.flushBuffer();
}
}
controller
@ApiOperation("导出所选--导出excel")
@PostMapping("/exportExcel")
public void exportExcel(HttpServletResponse response, String ids) throws IOException {
equipmentService.exportEquipment(response, ids);
}
service
@Override
public void exportEquipment(HttpServletResponse response, String ids) throws IOException {
//获取数据
List<String> idList = List.of(ids.split(","));
List<EquipmentEntity> equipmentList = baseMapper.selectBatchIds(idList);
List<EquipmentExcelVO> equipmentVOList = new ArrayList<>();
for (EquipmentEntity equipmentEntity : equipmentList) {
EquipmentExcelVO equipmentVO = BeanUtil.copyProperties(equipmentEntity, EquipmentExcelVO.class);
String status = equipmentVO.getStatus();
String equipmentNum = equipmentVO.getEquipmentNum();
if (StringUtils.equals("0", status)) {
// 0正常 1-故障 2-维修
equipmentVO.setStatus("正常");
} else if (StringUtils.equals("1", status)) {
equipmentVO.setStatus("故障");
} else if (StringUtils.equals("2", status)) {
equipmentVO.setStatus("维修");
}
//根据设备号查可用工序
List<String> processList = equipmentProcessMapper.getAvailableOperation(equipmentNum);
equipmentVO.setProcessType(processList.toString());
equipmentVOList.add(equipmentVO);
}
if (CollectionUtils.isEmpty(equipmentList)) {
throw new BusinessException("数据不存在!");
}
ExcelUtil.export(response, "设备导出", EquipmentExcelVO.class, equipmentVOList);
}
3万+

被折叠的 条评论
为什么被折叠?



