您的位置:首页 > 编程语言 > Java开发

java基于poi的excel表格处理(自定义注解、针对List与enum进行处理)

2017-09-09 15:55 459 查看

Java基于poi的excel表格处理

背景:

由于网上太少有方便的工具来操作了,所以手动造了个轮子…

例子:





说明:

在字段上添加@ExcelInfo注解,其中row为“行数-1”,col为“列数-1”。

如需进行特殊转换,使用enumclass = EnumXXXX.class,EnumXXXX需实现ExcelInfoEnumI接口

如使用List进行映射参数,则可指定endMode,即将某行,某列或者行列方式圈选进List中

尽量使用String,避免类型转换出大bug

结果如下:

{A1=’单元格’, A2=111.0, A3=’111.0’, A4=Fri Sep 08 21:41:22 EDT 2017, A5=’1.11’, A6=’1’, A7=’null’, E9_F11=[9.0, 10.0, 10.0, 11.0]}

鄙人不才,如有些许边界性的bug未能给予正确处理还请告知

相关代码

@Documented
@Target(ElementType.FIELD)
@Inherited
@Retention(RetentionPolicy.RUNTIME)
public @interface ExcelInfo {

int row() default 0;

int col() default 0;

int rowEnd() default Integer.MAX_VALUE;

int colEnd() default Integer.MAX_VALUE;

EndModeEnum endMode() default EndModeEnum.vertical;

boolean required() default false;

Class<? extends Enum<? extends ExcelInfoEnumI>> enumclass() default ExcelInfoEnum.class;

enum ExcelInfoEnum implements ExcelInfoEnumI {
;

@Override
public String getKey() {
return null;
}

@Override
public String getValue() {
return null;
}
}

enum EndModeEnum {
vertical(1), across(2), verticalANDacross(3);
private int mode;

EndModeEnum(int mode) {
this.mode = mode;
}

public int getMode() {
return mode;
}
}

}


public interface ExcelInfoEnumI {

String getKey();

Object getValue();

}


完整代码 github https://github.com/anniweiya/anniweiya-test/tree/master/excel

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息