alibaba/easyexcel

根据模板生成的Excel,在点击“千位分隔样式”后,单元格格式会被清除

Open

#3888 aperta il 17 lug 2024

Vedi su GitHub
 (8 commenti) (0 reazioni) (2 assegnatari)Java (7599 fork)batch import
help wantedpending verification

Metriche repository

Star
 (33.728 star)
Metriche merge PR
 (Nessuna PR mergiata in 30 g)

Descrizione

涉及代码:

package com.example.javatest.Test;

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.example.javatest.java.easyexcel.FillData;
import org.junit.Test;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class ExcelTemplateTest {

    @Test
    public void simpleFill() {
        String templateFileName =
                "D:\\template\\表单信息.xlsx";
        String dest =
                "D:\\template\\表单信息dest.xlsx";
        List<FillData> fillDataList = new ArrayList<>();
        for (int i = 0; i < 100; i++) {
            FillData build = FillData.builder().level(i)
                    .billDate(new Date())
                    .billNo("billNO" + i * 24)
                    .fseq(i + "11")
                    .period("期间-" + i)
                    .voucher("凭证-" + i + 5)
                    .billName("单据名-" + (char) i)
                    .materialNo("no-" + i * 25)
                    .materialName("name-" + i * 62)
                    .hasChange(false)
                    .fqty(BigDecimal.valueOf(i * 303.3)).build();
            fillDataList.add(build);
        }
        ExcelWriter excelWriter = EasyExcel.write(dest)
                .withTemplate(templateFileName)
                .build();
        WriteSheet writeSheet = EasyExcel.writerSheet("表单信息").build();

        excelWriter.fill(fillDataList, writeSheet);
        excelWriter.finish();


    }
}

实体类:

package com.example.javatest.java.easyexcel;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.NumberFormat;
import com.example.javatest.Test.BooleanToStringConvert;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.poi.ss.usermodel.IndexedColors;

import java.math.BigDecimal;
import java.util.Date;

@Data
@EqualsAndHashCode
@Builder
public class FillData {
    private Integer level;
    private Date billDate;
    private String billNo;
    private String fseq;
    private String period;
    private String voucher;
    private String billName;
    private String materialNo;
    private String materialName;
    @NumberFormat("0.00###############")
    private BigDecimal fqty;
    @ExcelProperty(converter = BooleanToStringConvert.class)
    private boolean hasChange;
    @ExcelIgnore
    private IndexedColors color;
}

pom 版本 com.alibaba easyexcel 3.3.4

导出后现象见下图 image image

Guida contributor