[alibaba/easyexcel]测试使用注解定义写入样式的疑问

2024-05-23 986 views
6
版本
<dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>easyexcel</artifactId>
      <version>2.2.0-beta1</version>
</dependency>

异常代码

实体对象
package org.shiloh.easyexcel.test.write.dto;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ContentFontStyle;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.alibaba.excel.annotation.write.style.HeadStyle;
import lombok.Data;
import org.apache.poi.ss.usermodel.FillPatternType;

import java.util.Date;

/**
 * @author lxlei
 * @description 基础数据,测试用注解定义excel写出的数据的样式
 * @date 2020/3/31 11:33
 */
@Data
/**
 * 设置标题头样式:
 * fillPatternType:设置填充前景类型为直线{@link FillPatternType#SOLID_FOREGROUND}
 * fillBackgroundColor:填充背景色为红色{@link org.apache.poi.ss.usermodel.IndexedColors#RED}
 */
@HeadStyle(fillPatternType = FillPatternType.SOLID_FOREGROUND, fillBackgroundColor = 10)
// 设置标题头字体高度为20
@HeadFontStyle(fontHeightInPoints = 20)
/**
 * 设置内容样式:
 * fillPatternType:设置填充前景类型为直线{@link FillPatternType#SOLID_FOREGROUND}
 * fillBackgroundColor:填充背景色为绿色{@link org.apache.poi.ss.usermodel.IndexedColors#GREEN}
 */
@ContentStyle(fillPatternType = FillPatternType.SOLID_FOREGROUND, fillBackgroundColor = 17)
// 设置内容字体高度为20
@ContentFontStyle(fontHeightInPoints = 20)
public class DemoStyleData {
    // 单独设置一下字符串标题的样式

    /**
     * 字符串标题头样式:
     * fillPatternType:填充图案前景类型为直线{@link FillPatternType#SOLID_FOREGROUND}
     * fillBackgroundColor:标题头的背景色单独设置为粉红色{@link org.apache.poi.ss.usermodel.IndexedColors#PINK}
     */
    @HeadStyle(fillPatternType = FillPatternType.SOLID_FOREGROUND, fillBackgroundColor = 14)
    // 字符串标题头的字体高度设置为30
    @HeadFontStyle(fontHeightInPoints = 30)
    /**
     * 字符串内容样式:
     * fillPatternType:填充图案前景类型为直线{@link FillPatternType#SOLID_FOREGROUND}
     * fillBackgroundColor:标题头的背景色单独设置为天蓝色{@link org.apache.poi.ss.usermodel.IndexedColors#SKY_BLUE}
     */
    @ContentStyle(fillPatternType = FillPatternType.SOLID_FOREGROUND, fillBackgroundColor = 40)
    // 字符串内容的字体高度设置为30
    @ContentFontStyle(fontHeightInPoints = 30)
    @ExcelProperty("字符串标题")
    private String str;

    @ExcelProperty("日期标题")
    private Date date;

    @ExcelProperty("数字标题")
    private Double doubleData;
}
测试代码
/**
     * 通过注解自定义写入样式来写入数据
     * 1.创建excel对应的实体对象,参照{@link DemoStyleData}
     * 2.直接写入
     */
    @Test
    public void writeExcelWithAnnotationStyle() {
        String fileName = "D:\\shiloh\\style_test_demo.xlsx";
        EasyExcel.write(fileName, DemoStyleData.class)
                .sheet("写入测试")
                .doWrite(getData());
    }
理想的写入效果

图片

实际写入效果

图片

回答

4

麻烦作者大大不要使用火狐74.0(64bit)浏览器查看问题,图片打不开。。。

7

sorry 是我写错了属性~~

7

sorry 是我写错了属性~~

正确的咋写啊?老板

7

sorry 是我写错了属性~~

正确的咋写啊?老板

你看看官方文档吧,我当时应该是没仔细看文档,太久远了记不起来了~~

3

我用设置前景色(fillForegroundColor)属性就可以