刘小明
2024-08-26 0c479f17e5f9ff3ad638f3af783cf22b0a77fbd0
pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/schedule/ExcelVo.java
@@ -3,21 +3,13 @@
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.Date;
import java.util.List;
//参考:  https://easyexcel.opensource.alibaba.com/docs/current/quickstart/write
@Data
@@ -27,27 +19,28 @@
        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(100) //设置内容高度
@ContentFontStyle(fontName="宋体", fontHeightInPoints = 14)
@ContentRowHeight(30) //设置内容高度
@ContentFontStyle(fontName="宋体", fontHeightInPoints = 11)
@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[]> {
    @ColumnWidth(40)
//    @ContentLoopMerge(eachRow=2)
    @ColumnWidth(0)//设置列宽为0,不显示
    @ExcelProperty("ID")
    public String id ;
    @ColumnWidth(15)
    @ExcelProperty("用户名")
    public String userName ;
    @ColumnWidth(40)
    @ColumnWidth(20)
    @ExcelProperty("排班日期")
//    @ContentLoopMerge(eachRow=2)
    public String scheduleDate ;
    @ColumnWidth(40)
    @ColumnWidth(28)
    @ExcelProperty("创建时间")
//    @ContentLoopMerge(eachRow=2)
    public Date dt ;
    @ColumnWidth(40)
@@ -65,30 +58,4 @@
    @ColumnWidth(40)
    @ExcelProperty({"排班内容","工作内容"})
    public String workDetails ;
    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());
    }
}