专业的编程技术博客社区

网站首页 > 博客文章 正文

多功能 Excel 工具包 MyExcel(excel工具大全)

baijin 2024-10-11 10:42:10 博客文章 12 ℃ 0 评论

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

定位 | Target

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

优势 | Advantages

  • 可生成任意复杂表格:本工具使用迭代单元格方式进行Excel绘制,可生成任意复杂度Excel,提供多种宽度策略;
  • 零学习成本:使用Html作为模板,学习成本几乎为零;
  • 支持常用背景色、边框、字体等样式设置:具体参见下方Style-support(样式支持)部分;
  • 支持.XLS、.XLSX:支持生成.xls、.xlsx后缀的Excel;
  • 支持低内存SXSSF模式:支持低内存的SXSSF模式,可利用极低的内存生成.xlsx;
  • 支持生产者消费者模式导出:支持生产者消费者模式导出,无需一次性获取所有数据,分批获取数据配合SXSSF模式实现真正意义上海量数据导出;
  • 支持多种模板引擎:已内置Freemarker、Groovy、Beetl等常用模板引擎Excel构建器(详情参见文档Getting started),默认内置Beetl模板引擎(推荐引擎,Beetl文档);
  • 提供默认Excel构建器,直接输出简单Excel:无需编写任何Html,已内置默认模板,可直接根据POJO数据列表输出;
  • 支持一次生成多sheet:以table作为sheet单元,支持一份Excel文档中多sheet导出;

导入示例

URL htmlToExcelEampleURL = this.getClass().getResource("/templates/read_example.xlsx");
Path path = Paths.get(htmlToExcelEampleURL.toURI());
List<ArtCrowd> result = DefaultExcelReader.of(ArtCrowd.class)
 .sheet(0) // 如果为0,可省略该操作
 .rowFilter(row -> row.getRowNum() > 0) // 如无需过滤,可省略该操作
 .read(path.toFile());
public class ArtCrowd {
 // index代表列索引,从0开始
 @ExcelColumn(index = 0)
 private String name;
 @ExcelColumn(index = 1)
 private String age;
 @ExcelColumn(index = 2,dateFormatPattern="yyyy-MM-dd")
 private Date birthday;
}

导出示例

List<ArtCrowd> dataList = this.getDataList();
 Workbook workbook = DefaultExcelBuilder.of(ArtCrowd.class)
 .build(dataList);
 AttachmentExportUtil.export(workbook, "艺术生信息", response);
 // 加密导出
 // AttachmentExportUtil.encryptExport(workbook, "艺术生信息", response,"123456");
}

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表