easyexcel 添加下拉框


easyexcel 添加下拉框

 

 

*****************

相关类与接口

 

Sheet(部分方法

public interface Sheet extends Iterable<Row> {

    DataValidationHelper getDataValidationHelper();
    void addValidationData(DataValidation var1);
}

 

DataValidationHelper

public interface DataValidationHelper {

    DataValidationConstraint createCustomConstraint(String var1);
    DataValidationConstraint createFormulaListConstraint(String var1);
    DataValidationConstraint createExplicitListConstraint(String[] var1);


    DataValidationConstraint createDecimalConstraint(int var1, String var2, String var3);
    DataValidationConstraint createIntegerConstraint(int var1, String var2, String var3);
    DataValidationConstraint createNumericConstraint(int var1, int var2, String var3, String var4);
    DataValidationConstraint createTextLengthConstraint(int var1, String var2, String var3);

    DataValidationConstraint createDateConstraint(int var1, String var2, String var3, String var4);
    DataValidationConstraint createTimeConstraint(int var1, String var2, String var3);


    DataValidation createValidation(DataValidationConstraint var1, CellRangeAddressList var2);
}

 

CellRangeAddressList

public class CellRangeAddressList {
    protected final List<CellRangeAddress> _list;

    public CellRangeAddressList() {
    public CellRangeAddressList(int firstRow, int lastRow, int firstCol, int lastCol) {
    public CellRangeAddressList(RecordInputStream in) {


    public void addCellRangeAddress(int firstRow, int firstCol, int lastRow, int lastCol) {
    public void addCellRangeAddress(CellRangeAddress cra) {


    public CellRangeAddress remove(int rangeIndex) {
    public CellRangeAddress getCellRangeAddress(int index) {
    public CellRangeAddress[] getCellRangeAddresses() {

    public int getSize() {
    public int countRanges() {
    public static int getEncodedSize(int numberOfRanges) {


    public int serialize(int offset, byte[] data) {
    public void serialize(LittleEndianOutput out) {

    public CellRangeAddressList copy() {

 

CellRangeAddress

public class CellRangeAddress extends CellRangeAddressBase {
    public static final int ENCODED_SIZE = 8;

    public CellRangeAddress(int firstRow, int lastRow, int firstCol, int lastCol) {
    public CellRangeAddress(RecordInputStream in) {


    public CellRangeAddress copy() {
    public static CellRangeAddress valueOf(String ref) {

    public String formatAsString() {
    public String formatAsString(String sheetName, boolean useAbsoluteAddress) {

    public void serialize(LittleEndianOutput out) {
    public static int getEncodedSize(int numberOfItems) {

    private static int readUShortAndCheck(RecordInputStream in) {

 

 

AbstractSheetWriteHandler

public abstract class AbstractSheetWriteHandler implements SheetWriteHandler {

    @Override
    public void beforeSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {

    }

    @Override
    public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {

    }
}

 

SheetWriteHandler

public interface SheetWriteHandler extends WriteHandler {

    void beforeSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder);

    void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder);
}

 

WriteHandler

public interface WriteHandler extends Handler {
}

 

Handler

public interface Handler {
}

 

 

*****************

示例

 

Test

@Data
class Person{

    private Integer id;
    private String name;
    private Integer age;
    private String sex;
}

class CustomSheetWriteHandler extends AbstractSheetWriteHandler{

    @Override
    public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
        CellRangeAddressList list=new CellRangeAddressList(1,20,2,3); //1到20行、2到3列添加下拉框

        DataValidationHelper helper=writeSheetHolder.getSheet().getDataValidationHelper();
        DataValidationConstraint constraint=helper.createExplicitListConstraint(new String[]{"男","女"});
        DataValidation dataValidation=helper.createValidation(constraint,list);

        writeSheetHolder.getSheet().addValidationData(dataValidation);
    }
}

public class Test {

    private static final String write_path="e:"+ File.separator+"java"+File.separator+"easyexcel"+File.separator+"write4.xlsx";

    public static void write(){
        EasyExcel.write(write_path,Person.class).registerWriteHandler(new CustomSheetWriteHandler())
                .sheet().doWrite(data());
    }

    private static List<Person> data(){
        List<Person> list=new ArrayList<>();

        for (int i=0;i<5;i++){
            Person person=new Person();
            person.setId(i);
            person.setName("瓜田李下 "+i);
            person.setAge(20+i);

            list.add(person);
        }

        return list;
    }

    public static void main(String[] args){
        write();
    }
}

 

****************

使用测试

 

                    

sex列添加下拉框成功,内容为:男、女

 

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值