package com.dy.pmsBase.MarkQrCode; import com.alibaba.excel.converters.Converter; import com.alibaba.excel.converters.WriteConverterContext; import com.alibaba.excel.enums.BooleanEnum; import com.alibaba.excel.enums.CellDataTypeEnum; import com.alibaba.excel.enums.poi.BorderStyleEnum; import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum; import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; import com.alibaba.excel.metadata.GlobalConfiguration; import com.alibaba.excel.metadata.data.ImageData; import com.alibaba.excel.metadata.data.WriteCellData; import com.alibaba.excel.metadata.property.ExcelContentProperty; import lombok.Data; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.write.style.*; import java.util.ArrayList; import java.util.List; //参考: https://easyexcel.opensource.alibaba.com/docs/current/quickstart/write @Data @HeadRowHeight(40) //设置标题高度 @HeadFontStyle(fontName="宋体", fontHeightInPoints = 16) @HeadStyle(wrapped = BooleanEnum.TRUE, shrinkToFit = BooleanEnum.TRUE, horizontalAlignment = HorizontalAlignmentEnum.CENTER, verticalAlignment = VerticalAlignmentEnum.CENTER, borderLeft = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, leftBorderColor = 8, rightBorderColor = 8, topBorderColor = 8, bottomBorderColor = 8) //IndexedColors.BLACK @ContentRowHeight(220) //设置内容高度 @ContentFontStyle(fontName="宋体", fontHeightInPoints = 14) @ContentStyle(wrapped = BooleanEnum.TRUE, shrinkToFit = BooleanEnum.TRUE, horizontalAlignment = HorizontalAlignmentEnum.CENTER, verticalAlignment = VerticalAlignmentEnum.CENTER, borderLeft = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, leftBorderColor = 8, rightBorderColor = 8, topBorderColor = 8, bottomBorderColor = 8) //IndexedColors.BLACK @ColumnWidth(16) //设置列宽 public class ExcelVo implements Converter { @ExcelProperty("编码") public String code ; //编码 @ExcelProperty("名称") public String name ; //名称 @ColumnWidth(40) //设置列宽(可以修饰类,也可以修饰具体属性) @ExcelProperty(value = "二维码", converter = ExcelVo.class) public byte[] image ; public WriteCellData convertToExcelData(byte[] value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception { WriteCellData cellData = new WriteCellData() ; if(value != null && value.length >0){ List list = new ArrayList<>(); ImageData imd = new ImageData(); imd.setImage(value); imd.setImageType(ImageData.ImageType.PICTURE_TYPE_PICT); imd.setLeft(10); imd.setTop(10); imd.setRight(10); imd.setBottom(10); list.add(imd) ; cellData.setImageDataList(list); cellData.setType(CellDataTypeEnum.EMPTY); }else{ cellData.setStringValue(""); cellData.setType(CellDataTypeEnum.STRING); } return cellData; } public WriteCellData convertToExcelData(WriteConverterContext context) throws Exception { return this.convertToExcelData(context.getValue(), context.getContentProperty(), context.getWriteContext().currentWriteHolder().globalConfiguration()); } }