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