阿八博客
  • 100000+

    文章

  • 23

    评论

  • 20

    友链

  • 最近新加了很多技术文章,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

MyExcel 2.8.2 版本发布,2.x 最后一版

欢迎来到阿八个人博客网站。本 阿八个人博客 网站提供最新的站长新闻,各种互联网资讯。 喜欢本站的朋友可以收藏本站,或者加QQ:我们大家一起来交流技术! URL链接:https://www.abboke.com/ws/2019/0812/104994.html
ad-wrap">

挑战A.I.,赢百万奖金......了>>>

MyExcel,是一个集导入、导出、加密Excel等多项功能的Java工具包。

  • 导入:提供简便的API,读取Excel内容,并转化为List< Bean >。
  • 导出:可快速导出海量数据的简单列表,可生成高复杂度布局的Excel,复杂布局指的是包含多种不规则合并单元格、背景色、字体大小、斜体、下拉列表等,可自动划分Excel生成zip压缩包。

本次更新为综合更新,涉及众多新特性以及Bug修复,更新点如下:

  • 修复DefaultExcelBuilder、DefaultStreamExcelBuilder固定标题行无法横向移动问题;
  • 修复SaxExcelReader读取.xls文件流失败问题;
  • 修复DefaultExcelBuilder/DefaultStreamExcelBuilder非连续列复杂表头共存问题;
  • 修复空Tr情况下报java.lang.UnsupportedOperationException异常问题;
  • 修复读取Bigdecimal时,未除去非字符,如“,”等导致的错误问题;
  • 新增CsvBuilder,支持生成.csv文件;
  • 新增.csv文件读取模块,使用SaxExcelReader读取;
  • SaxExcelReader支持按sheet名称读取;
  • 新增DefaultExcelBuilder\DefaultStreamExcelBuilder\Excel模板下拉列表支持;
  • 新增DefaultExcelBuilder\DefaultStreamExcelBuilder\Excel模板超链接支持;
  • 新增DefaultExcelBuilder\DefaultStreamExcelBuilder自定义样式支持;
  • 新增DefaultExcelBuilder\DefaultStreamExcelBuilder金额格式化支持;
  • 新增DefaultExcelBuilder、DefaultStreamExcelBuilder简单映射支持;
  • 新增DefaultExcelBuilder动态Map导出自定义宽度支持;
  • 新增各个Excel构建器closeable支持,异常情况下try-with-resource主动关闭相关资源;
  • 优化AttachmentExportUtil导出content-type,明确类型;
  • 其他数据结构、内存优化;
  • 使用文档完善;

因涉及较多的Bug修复,建议所有使用用户进行升级!!!

2.8.2版本是2.x最后一版,后续将进入3.x版本,在此期间会进行核心代码重构以及性能大提升,也会伴随其他新特性,敬请期待!!!

新特性展示如下:

1. DefaultExcelBuilder\DefaultStreamExcelBuilder非连续多表头

language-java">// 导出逻辑
Workbook workbook = DefaultExcelBuilder.of(ArtCrowd.class).fixedTitles().build(dataList);
AttachmentExportUtil.export(workbook, "艺术生信息", response);


// ArtCrowd类导出部分字段
@ExcelColumn(order = 0, title = "扩展信息->姓名")
private String name;

@ExcelColumn(order = 1, title = "年龄")
private Integer age;

@ExcelColumn(order = 2, title = "扩展信息->性别", mapping = "Man:男,Woman:女")
private String gender;

2. DefaultExcelBuilder\DefaultStreamExcelBuilder金额格式化(默认四舍五入)

language-java">@ExcelColumn(title = "金额",decimalFormat = "##,##0.00")
private BigDecimal money = new BigDecimal(12345.6454);

3. .csv文件生成

language-java">Csv csv = CsvBuilder.of(ArtCrowd.class).build(getDataList());
AttachmentExportUtil.export(csv.getFilePath(), "123.csv", response);

private List<ArtCrowd> getDataList() {
}

csv文件生成目前只支持Bean方式,具体使用方式与DefaultExcelBuilder一致。

4. csv文件读取

language-java">// csv文件获取
URL htmlToExcelEampleURL = this.getClass().getResource("/templates/read_example.csv");
Path path = Paths.get(htmlToExcelEampleURL.toURI());
// csv文件读取,支持流方式
List<ArtCrowd> result = SaxExcelReader.of(ArtCrowd.class).beanFilter(bean -> bean.isDance()).rowFilter(row -> row.getRowNum() > 0).read(path.toFile());

5. 自定义样式支持

language-java">@ExcelColumn(title = "金额",decimalFormat = "##,##0.00",style = "color:green;")
private BigDecimal money = new BigDecimal(12345.6454);

6. 下拉列表支持(字段类型为List,则默认为下拉列表)

language-java"> @ExcelColumn(title = "下拉列表")
 private List<String> opts;

7. 简单映射

language-java">@ExcelColumn(title="性别",mapping="0:男,1:女")
Integer gender;

其他具体详情,请移步文档:https://github.com/liaochong/myexcel/wiki

相关文章