excel-mapping
是一个简化POI
繁杂的API操作,作为常用导入导出为目的对Excel进行操作的组件。excel-mapping
的目标是简单而强大,通过使用XML或@Annotation作为配置方式,快速完成实际开发工作中复杂而繁琐的Excel操作。
从File导入
List<E> read(File file) throws IOException, InvalidFormatException;
List<E> read(File file,int sheetIndex) throws IOException, InvalidFormatException;
从byte[]导入
List<E> read(byte[] bytes) throws IOException, InvalidFormatException;
List<E> read(byte[] bytes,int sheetIndex) throws IOException, InvalidFormatException;
从InputStream导入
List<E> read(InputStream inputStream) throws IOException, InvalidFormatException;
List<E> read(InputStream inputStream,int sheetIndex) throws IOException, InvalidFormatException;
从Sheet导入
List<E> read(Sheet sheet);
导入目标既可以是一个定义的Bean的List,也可以是Map的List,Map映射的方式只能使用XML配置,JavaBean的映射方式可以使用XML和注解两种配置方式。
从List导出
void write(List<E> beans,Workbook workbook);
void write(List<E> beans,Workbook workbook,int sheetIndex);
void write(List<E> beans,OutputStream outputStream);
void write(List<E> beans,OutputStream outputStream,int sheetIndex);
void write(List<E> beans,File file);
void write(List<E> beans,File file,int sheetIndex);
从java.sql.ResultSet导出
void write(ResultSet resultSet,Workbook workbook);
void write(ResultSet resultSet,Workbook workbook,int sheetIndex);
void write(ResultSet resultSet,OutputStream outputStream);
void write(ResultSet resultSet,OutputStream outputStream,int sheetIndex);
void write(ResultSet resultSet,File file);
void write(ResultSet resultSet,File file,int sheetIndex);
- class(必选) 映射的JavaBean类全名,或为java.util.Map(映射成List形式)
- name(可选) Sheet的名字,显示在Sheet标签上,默认为空,显示为"Sheet 1"这样的名称
- enableStyle(可选) 是否启用样式,默认false(该属性暂未使用,样式的使用会影响性能,在大数据量导出时不建议开启。
- enableProtect(可选) 是否启用保护,默认false,与Field的Locked属性配合使用,可试列内容不可编辑。
- sheetPassword(可选) Sheet保护的密码,启用保护后可设置密码,不设置则密码为空。
- defaultColumnWidth(可选) 设置默认的的列宽,在Field上设置width后可覆盖该项。默认为10
- version(可选) 枚举值,可选值hssf和xssf,默认为xssf。
- name(必选) Bean字段名,Map的Key,ResultSet的字段名
- title(必选) 在Excel上标题列显示的内容
- width(可选) 宽度,默认使用Sheet指定的defaultColumnWidth
- align(可选) 暂未启用该配置
- locked(可选) 是否锁定,Sheet的enableProtect为true时生效
- type(可选) 在使用ResultSet、Map导入时指定该字段可提高转换准确性
- format(可选) 根据使用的formatter不同该字段有不同效果,默认的SimpleFieldMappingFormatter使用Groovy表达式指定一个Map,表示从Bean<-->Excel映射时的转换,如数据为boolean型,通过设定format[true:'男':false:'女']转换为Excel后显示为男女
- fomatter(可选) 支持自定义的转化方式,通过实现FieldMappingFormatter接口
支持所有Microsoft Excel版本,导出时可指定使用的输出版本,导入时自动识别版本。 版本对应枚举为 ExcelVersionEnum,抽象化为HSSF(.xls)和XSSF(.xlsx)
- 支持更复杂的format,支持日期和数值类型的格式化输出
- 支持多个Sheet的导入及一次将不同数据导出到一个Workbook的多个Sheet
- 更多样式的支持
- 大数据量导出的性能优化