| package com.dy.pmsPlatform.station; | 
|   | 
| import com.alibaba.excel.annotation.ExcelProperty; | 
| import com.alibaba.excel.annotation.write.style.*; | 
| 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 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<byte[]> { | 
|   | 
|     @ExcelProperty("名称") | 
|     public String name ; | 
|   | 
|     @ExcelProperty("生产线") | 
|     public String lineName ; | 
|   | 
| //    @ExcelProperty("编码") | 
| //    public String code ; | 
|   | 
|     @ColumnWidth(40)   //设置列宽(可以修饰类,也可以修饰具体属性) | 
|     @ExcelProperty(value = "工站二维码", converter = ExcelVo.class) | 
|     public byte[] qrCode ; | 
|   | 
|   | 
|     public WriteCellData<?> convertToExcelData(byte[] value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception { | 
|         WriteCellData cellData = new WriteCellData()  ; | 
|         if(value != null && value.length >0){ | 
|             List<ImageData> 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<byte[]> context) throws Exception { | 
|         return this.convertToExcelData(context.getValue(), context.getContentProperty(), context.getWriteContext().currentWriteHolder().globalConfiguration()); | 
|     } | 
|   | 
| } |