基于开源的easypoi 4.4.0的完善
版本介绍
基础示例
1.设计精巧,使用简单
2.接口丰富,扩展简单
3.默认值多,write less do more
4.AbstractView 支持,web导出可以简单明了
- 导出
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)
1.导出时间XLS比XLSX快2-3倍
2.导出大小XLS是XLSX的2-3倍或者更多
3.导出需要综合网速和本地速度做考虑^~^
1.easypoi 父包--作用大家都懂得
2.easypoi-annotation 基础注解包,作用与实体对象上,拆分后方便maven多工程的依赖管理
3.easypoi-base 导入导出的工具包,可以完成Excel导出,导入,Word的导出,Excel的导出功能
4.easypoi-web 耦合了spring-mvc 基于AbstractView,极大的简化spring-mvc下的导出功能
5.sax 导入使用xercesImpl这个包(这个包可能造成奇怪的问题哈),word导出使用poi-scratchpad,都作为可选包了
maven库应该都可以了 SNAPSHOT 版本-很少发布 https://oss.sonatype.org/content/groups/public/
<dependency>
<groupId>top.rwocj</groupId>
<artifactId>easypoi-spring-boot-starter</artifactId>
<version>4.4.0</version>
</dependency>
<!-- 建议只用start -->
<dependency>
<groupId>top.rwocj</groupId>
<artifactId>easypoi-base</artifactId>
<version>4.4.0</version>
</dependency>
<dependency>
<groupId>top.rwocj</groupId>
<artifactId>easypoi-web</artifactId>
<version>4.4.0</version>
</dependency>
<dependency>
<groupId>top.rwocj</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>4.4.0</version>
</dependency>
word和sax读取的时候才使用,就不是必须的了,请手动引用,JSR303的校验也是可选的,PDF的jar也是可选的
<!-- sax 读取时候用到的 -->
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>${xerces.version}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>${poi.version}</version>
<optional>true</optional>
</dependency>
<!-- Word 需要使用 -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>ooxml-schemas</artifactId>
<version>1.3</version>
<optional>true</optional>
</dependency>
<!-- 校验,下面两个实现 -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.1.3.Final</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.bval</groupId>
<artifactId>org.apache.bval.bundle</artifactId>
<version>1.1.0</version>
</dependency>
<!-- PDF -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.6</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
<optional>true</optional>
</dependency>
包 | 类 | 方法 | 行 |
---|---|---|---|
cn | 100% (0/0) | 100% (0/0) | 100% (0/0) |
cn.afterturn | 100% (0/0) | 100% (0/0) | 100% (0/0) |
cn.afterturn.easypoi | 0% (0/1) | 0% (0/1) | 0% (0/3) |
cn.afterturn.easypoi.cache | 100% (6/6) | 83% (10/12) | 60% (40/66) |
cn.afterturn.easypoi.cache.manager | 100% (3/3) | 62% (5/8) | 54% (29/53) |
cn.afterturn.easypoi.configuration | 0% (0/2) | 0% (0/1) | 0% (0/5) |
cn.afterturn.easypoi.entity | 100% (1/1) | 83% (15/18) | 66% (26/39) |
cn.afterturn.easypoi.entity.vo | 100% (0/0) | 100% (0/0) | 100% (0/0) |
cn.afterturn.easypoi.excel | 100% (3/3) | 73% (19/26) | 59% (44/74) |
cn.afterturn.easypoi.excel.annotation | 100% (0/0) | 100% (0/0) | 100% (0/0) |
cn.afterturn.easypoi.excel.entity | 83% (5/6) | 66% (85/127) | 63% (185/290) |
cn.afterturn.easypoi.excel.entity.enmus | 100% (3/3) | 88% (8/9) | 92% (13/14) |
cn.afterturn.easypoi.excel.entity.params | 100% (6/6) | 84% (94/111) | 75% (160/211) |
cn.afterturn.easypoi.excel.entity.result | 100% (2/2) | 76% (16/21) | 65% (26/40) |
cn.afterturn.easypoi.excel.entity.sax | 100% (1/1) | 33% (2/6) | 45% (5/11) |
cn.afterturn.easypoi.excel.entity.vo | 100% (1/1) | 100% (1/1) | 100% (3/3) |
cn.afterturn.easypoi.excel.export | 100% (2/2) | 94% (17/18) | 84% (202/238) |
cn.afterturn.easypoi.excel.export.base | 100% (2/2) | 97% (33/34) | 88% (353/399) |
cn.afterturn.easypoi.excel.export.styler | 100% (4/4) | 86% (19/22) | 97% (122/125) |
cn.afterturn.easypoi.excel.export.template | 100% (3/3) | 95% (43/45) | 92% (422/457) |
cn.afterturn.easypoi.excel.graph | 100% (0/0) | 100% (0/0) | 100% (0/0) |
cn.afterturn.easypoi.excel.graph.builder | 0% (0/1) | 0% (0/8) | 0% (0/92) |
cn.afterturn.easypoi.excel.graph.constant | 100% (0/0) | 100% (0/0) | 100% (0/0) |
cn.afterturn.easypoi.excel.graph.entity | 0% (0/3) | 0% (0/26) | 0% (0/49) |
cn.afterturn.easypoi.excel.html | 100% (2/2) | 92% (24/26) | 84% (242/287) |
cn.afterturn.easypoi.excel.html.css | 100% (2/2) | 100% (10/10) | 94% (166/175) |
cn.afterturn.easypoi.excel.html.css.impl | 100% (6/6) | 60% (9/15) | 74% (111/149) |
cn.afterturn.easypoi.excel.html.entity | 100% (0/0) | 100% (0/0) | 100% (0/0) |
cn.afterturn.easypoi.excel.html.entity.style | 100% (3/3) | 100% (53/53) | 100% (87/87) |
cn.afterturn.easypoi.excel.html.helper | 80% (4/5) | 77% (24/31) | 67% (154/228) |
cn.afterturn.easypoi.excel.imports | 100% (2/2) | 92% (26/28) | 79% (361/454) |
cn.afterturn.easypoi.excel.imports.base | 100% (1/1) | 100% (9/9) | 89% (102/114) |
cn.afterturn.easypoi.excel.imports.sax | 100% (2/2) | 100% (8/8) | 70% (56/80) |
cn.afterturn.easypoi.excel.imports.sax.parse | 100% (1/1) | 77% (7/9) | 58% (44/75) |
cn.afterturn.easypoi.exception | 100% (0/0) | 100% (0/0) | 100% (0/0) |
cn.afterturn.easypoi.exception.excel | 50% (1/2) | 20% (3/15) | 18% (6/32) |
cn.afterturn.easypoi.exception.excel.enums | 50% (1/2) | 44% (4/9) | 40% (9/22) |
cn.afterturn.easypoi.exception.word | 0% (0/1) | 0% (0/3) | 0% (0/6) |
cn.afterturn.easypoi.exception.word.enmus | 0% (0/1) | 0% (0/4) | 0% (0/10) |
cn.afterturn.easypoi.handler | 100% (0/0) | 100% (0/0) | 100% (0/0) |
cn.afterturn.easypoi.handler.impl | 100% (1/1) | 33% (2/6) | 44% (4/9) |
cn.afterturn.easypoi.handler.inter | 100% (0/0) | 100% (0/0) | 100% (0/0) |
cn.afterturn.easypoi.hanlder | 0% (0/1) | 0% (0/1) | 0% (0/17) |
cn.afterturn.easypoi.pdf | 100% (1/1) | 50% (1/2) | 33% (1/3) |
cn.afterturn.easypoi.pdf.entity | 100% (1/1) | 52% (10/19) | 47% (17/36) |
cn.afterturn.easypoi.pdf.export | 100% (1/1) | 100% (14/14) | 85% (131/153) |
cn.afterturn.easypoi.pdf.styler | 100% (1/1) | 100% (4/4) | 56% (9/16) |
cn.afterturn.easypoi.test | 100% (0/0) | 100% (0/0) | 100% (0/0) |
cn.afterturn.easypoi.test.en | 100% (3/3) | 93% (15/16) | 93% (31/33) |
cn.afterturn.easypoi.test.entity | 91% (11/12) | 50% (62/122) | 57% (117/202) |
cn.afterturn.easypoi.test.entity.check | 100% (2/2) | 50% (8/16) | 69% (18/26) |
cn.afterturn.easypoi.test.entity.groupname | 75% (3/4) | 46% (25/54) | 52% (48/92) |
cn.afterturn.easypoi.test.entity.img | 100% (1/1) | 100% (8/8) | 100% (16/16) |
cn.afterturn.easypoi.test.entity.samename | 100% (1/1) | 100% (6/6) | 100% (10/10) |
cn.afterturn.easypoi.test.entity.statistics | 100% (1/1) | 100% (12/12) | 100% (19/19) |
cn.afterturn.easypoi.test.entity.temp | 80% (4/5) | 94% (32/34) | 38% (52/134) |
cn.afterturn.easypoi.test.web | 100% (0/0) | 100% (0/0) | 100% (0/0) |
cn.afterturn.easypoi.test.web.cfg | 0% (0/1) | 0% (0/1) | 0% (0/4) |
cn.afterturn.easypoi.tohtml | 0% (0/1) | 0% (0/4) | 0% (0/13) |
cn.afterturn.easypoi.util | 100% (11/11) | 85% (84/98) | 73% (668/908) |
cn.afterturn.easypoi.view | 0% (0/13) | 0% (0/27) | 0% (0/376) |
cn.afterturn.easypoi.word | 100% (1/1) | 33% (1/3) | 20% (1/5) |
cn.afterturn.easypoi.word.entity | 100% (2/2) | 44% (4/9) | 45% (27/60) |
cn.afterturn.easypoi.word.entity.params | 50% (1/2) | 22% (5/22) | 14% (8/56) |
cn.afterturn.easypoi.word.parse | 100% (1/1) | 91% (11/12) | 94% (97/103) |
cn.afterturn.easypoi.word.parse.excel | 100% (2/2) | 90% (10/11) | 70% (95/135) |