java操作文档工具框架

链接: poi、easypoi和easyexcel的使用.

注意使用时请注意poi等依赖版本冲突!!

apache poi

Apache项目,封装了常见的文档操作,也可以操作底层XML结构。
easypoi和easyexcel 、Poi-tl 都是基于apache poi进行二次开发的。

easypoi

链接: easypoi-easypoi-excel和-word简易工具类

- 导出
    1.正规excel导出 (格式简单,数据量可以,5W以内吧)
        注解方式:  ExcelExportUtil.exportExcel(ExportParams entity, Class<?> pojoClass,Collection<?> dataSet) 
    2.不定多少列,但是格式依然简单数据库不大
        自定义方式: ExcelExportUtil.exportExcel(ExportParams entity, List<ExcelExportEntity> entityList,Collection<?> dataSet)
    3.数据量大超过5W,还在100W以内
        注解方式 ExcelExportUtil.exportBigExcel(ExportParams entity, Class<?> pojoClass,IExcelExportServer server, Object queryParams)
        自定义方式: ExcelExportUtil.exportBigExcel(ExportParams entity, List<ExcelExportEntity> excelParams,IExcelExportServer server, Object queryParams)
    4.样式复杂,数据量尽量别大
        模板导出 ExcelExportUtil.exportExcel(TemplateExportParams params, Map<String, Object> map)
    5.一次导出多个风格不一致的sheet
        模板导出 ExcelExportUtil.exportExcel(Map<Integer, Map<String, Object>> map,TemplateExportParams params) 
    6.一个模板但是要导出非常多份
        模板导出 ExcelExportUtil.exportExcelClone(Map<Integer, List<Map<String, Object>>> map,TemplateExportParams params)
    7.模板无法满足你的自定义,试试html
        自己构造html,然后我给你转成excel  ExcelXorHtmlUtil.htmlToExcel(String html, ExcelType type)
    8.数据量过百万级了.放弃excel吧,csv导出
        注解方式: CsvExportUtil.exportCsv(CsvExportParams params, Class<?> pojoClass, OutputStream outputStream)
        自定义方式: CsvExportUtil.exportCsv(CsvExportParams params, List<ExcelExportEntity> entityList, OutputStream outputStream)
    9.word导出
        模板导出: WordExportUtil.exportWord07(String url, Map<String, Object> map)
    10.PDF导出
        模板导出: TODO 
- 导入 
    如果想提高性能 ImportParams 的concurrentTask 可以帮助并发导入,仅单行,最小1000
    excel有单个的那种特殊读取,readSingleCell 参数可以支持
    1. 不需要检验,数据量不大(5W以内)
        注解或者MAP: ExcelImportUtil.importExcel(File file, Class<?> pojoClass, ImportParams params)
    2. 需要导入,数据量不大
        注解或者MAP: ExcelImportUtil.importExcelMore(InputStream inputstream, Class<?> pojoClass, ImportParams params)
    3. 数据量大了,或者你有特别多的导入操作,内存比较少,仅支持单行
       SAX方式  ExcelImportUtil.importExcelBySax(InputStream inputstream, Class<?> pojoClass, ImportParams params, IReadHandler handler)
    4. 数据量超过EXCEL限制,CSV读取
        小数据量: CsvImportUtil.importCsv(InputStream inputstream, Class<?> pojoClass,CsvImportParams params)
        大数据量: CsvImportUtil.importCsv(InputStream inputstream, Class<?> pojoClass,CsvImportParams params, IReadHandler readHandler)

easyexcel(阿里维护,值得信赖)

github链接: easyexcel
github链接: Easy Excel官方文档
链接: 实战技术针对于项目中常用的 Excel 操作指南
链接: JAVA连接Excel最好用的开源项目EasyExcel,官方使用文档及.jar包下载

在这里插入图片描述

Poi-tl

Word模板引擎,基于Apache POI,提供更友好的API
低代码,准备文档模板和数据即可
链接: Poi-tl.
链接: Poi-tl github地址.

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

htuool(简单使用)

链接: Excel生成.

基于 Freemarker 模板生成(不推荐使用)

  • 仅支持文本,很大的局限性 不推荐,
  • 特别复杂的样式和模板可使用,XML结构的代码很难维护
  • 本质还是xml格式文件,手机app端会出现无法打开的情况

ureport报表(很久没维护了,请慎用)

链接: ureport项目地址
链接: ureport文档

UReport2是一款基于架构在Spring之上纯Java的高性能报表引擎,通过迭代单元格可以实现任意复杂的中国式报表。 在UReport2中,提供了全新的基于网页的报表设计器,可以在Chrome、Firefox、Edge等各种主流浏览器运行(IE浏览器除外)。使用UReport2,打开浏览器即可完成各种复杂报表的设计制作。 UReport2是第一款基于Apache-2.0开源协议的中式报表引擎

  • 配合低代码平台使用还是不错的,有能力进行二开的话
  • 支持预览报表,所见即所得

pdf

PDFBox 是 Java 实现的 PDF 文档协作类库,提供 PDF 文档的创建、处理以及文档内容提取功能,也包含了一些命令行实用工具。
github链接: PDFBox .
github链接: pdfbox文档.

猜你喜欢

转载自blog.csdn.net/qq_41604890/article/details/122890098