From ad866b7ce4a78788c050e7be50e7ec7fcc0aeabe Mon Sep 17 00:00:00 2001 From: jueyue Date: Sat, 16 Nov 2019 21:26:21 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8B=B1=E6=96=87=E4=BB=8B=E7=BB=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 317 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 302 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 6f8279b..59b8500 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,309 @@ -# easypoi-spring-boot-starter -支持spring boot 快速引入 -Gradle 引入方式 -``` groovy -compile group: 'cn.afterturn',name:'easypoi-spring-boot-starter',version:'4.0.0' +EasyPoi - Easy utility classes of Excel and Word +=========================== + + Easypoi, as is clear from the name, it's easy for a developer who never even used poi to +export/import Excel, export Excel Template and Word Template, and export PDF. We encapsulate Apache poi in the upper layers. +With simple annotations and templates Language (familiar expression syntax) to accomplish previously complex coding. + + Website:https://opensource.afterturn.cn/ + Email: qrb.jueyue@foxmail.com + Developer:Jueyue qrb.jueyue@foxmail.com + Excellent Team, undertake project development +Support Spring Boot https://gitee.com/lemur/easypoi-spring-boot-starter + +[Official website](https://opensource.afterturn.cn) + + +**The Dev Guide** + +**[https://opensource.afterturn.cn/doc/easypoi.html](http://opensource.afterturn.cn/doc/easypoi.html)** + +Next steps + - Internationalization, translate documents and code-commenting + - Change all PDF export to Template export + - Synchronise Word tmplate function with the Excel + +[User feedback](https://gitee.com/lemur/easypoi/issues/IFDX7) + + +Display in order of registration. If you are using Easypoi, please register on https://gitee.com/lemur/easypoi/issues/IFDX7 which is only as a reference for the open source, no other purposes. + + - [一众科技](http://studio.afterturn.cn/) + - [博丰(深圳)跨境电商服务有限公司 ](http://www.bfeservice.com/) + - [陕西昊景无线网络技术有限公司](http://www.hjwxbd.com) + - [湖北省楚天云有限公司](http://www.chutianyun.gov.cn) + - [博彦科技](http://www.beyondsoft.com) + - [图灵谷北京科技有限公司](http://www.turingoal.com) + - [多贝拉](https://www.duobeila.cn/) + - [河南八六三软件股份有限公司](http://www.863soft.com/cn/) + - [网易](http://www.netease.com) + - [港华燃气](http://www.towngas.com.cn/) + - [北京易才博普奥管理顾问有限公司](https://www.weifenghr.com/) + - [中投国信(北京)科技发展有限公司](http://sic-credit.cn/) + - [武汉格事化信息技术](https://www.getto1.com/) + - [北京辰森世纪科技股份有限公司](http://www.choicesoft.com.cn/) + + + +Version introduction + +[history.md](https://gitee.com/lemur/easypoi/blob/master/history.md) + +Basic demo + +[basedemo.md](https://gitee.com/lemur/easypoi/blob/master/basedemo.md) + +[Demo project](http://git.oschina.net/lemur/easypoi-test): http://git.oschina.net/lemur/easypoi-test + +--------------------------- +Advantages of EasyPoi +-------------------------- + 1.Exquisite Design, easy to use + 2.Various Interfaces, easy to extend + 3.Coding less do more + 4.Support Spring MVC, easy for WEB export + +--------------------------- +Main Features +-------------------------- + +For Excel, self-adapt xls and xlsx format. For Word, only docx. + +1.Excel Import + - Annotation Import + - Map Import + - Big data Import, sax mode + - Save file + - File validation + - Field validation + +2.Excel Export + - Annotation Export + - Template Export + - HTML Export + +3.Excel convert to HTML + +4.Word Export + +5.PDF Export + +--------------------------- +which methods for which scenarios +--------------------------- + + - Export + 1. Normal excel export (simple format, moderate amount of data, within 50,000) + annotation way: ExcelExportUtil.exportExcel(ExportParams entity, Class pojoClass,Collection dataSet) + 2. uncertain columns, but also with simple format and small amount of data + customize way: ExcelExportUtil.exportExcel(ExportParams entity, List entityList,Collection dataSet) + 3. big data(greater than 50,000, less than one million) + annotation way ExcelExportUtil.exportBigExcel(ExportParams entity, Class pojoClass,IExcelExportServer server, Object queryParams) + customize way: ExcelExportUtil.exportBigExcel(ExportParams entity, List excelParams,IExcelExportServer server, Object queryParams) + 4. complex style, the amount of data not too large + Template: ExcelExportUtil.exportExcel(TemplateExportParams params, Map map) + 5. Export multiple sheets with different styles at one time + Template ExcelExportUtil.exportExcel(Map> map,TemplateExportParams params) + 6. One template but many copies to export + Template ExcelExportUtil.exportExcelClone(Map>> map,TemplateExportParams params) + 7. If Template can't satisfy your customization, try HTML + Build your own html, and then convert it to excel: ExcelXorHtmlUtil.htmlToExcel(String html, ExcelType type) + 8. Big data(Over millions), please use CSV + annotation way: CsvExportUtil.exportCsv(CsvExportParams params, Class pojoClass, OutputStream outputStream) + customize way: CsvExportUtil.exportCsv(CsvExportParams params, List entityList, OutputStream outputStream) + 9. Word Export + Template: WordExportUtil.exportWord07(String url, Map map) + 10. PDF Export + Template: TODO + - Import + If you want to improve the performance, the concurrentTask of ImportParams will help with concurrent imports;Only support single line, minimum 1000. + For some special reading for single cell, you can use the readSingleCell parameter + 1. no need verification, moderate amount of data, within 50,000 + annotation or map: ExcelImportUtil.importExcel(File file, Class pojoClass, ImportParams params) + 2. the amount of data not too large + annotation or map: ExcelImportUtil.importExcelMore(InputStream inputstream, Class pojoClass, ImportParams params) + 3. For big data or with lots of importing operations; Less memory, only support single line + SAX: ExcelImportUtil.importExcelBySax(InputStream inputstream, Class pojoClass, ImportParams params, IReadHandler handler) + 4. Big data(Over millions), please use CSV + small data: CsvImportUtil.importCsv(InputStream inputstream, Class pojoClass,CsvImportParams params) + big data: CsvImportUtil.importCsv(InputStream inputstream, Class pojoClass,CsvImportParams params, IReadHandler readHandler) + + + +--------------------------- +The difference between XLS and XLSX for Excel Export +--------------------------- + + 1. For export time, XLS is 2-3 times faster than xlsx. + 2. For export size, XLS is 2-3 or more times than xlsx. + 3. Export need to consider both network speed and local speed. + +--------------------------- +Packages Guide +--------------------------- + 1.easypoi -- Parent package + 2.easypoi-annotation -- Basic annotation package, action on entity objects, + it's convenient for Maven multi-project management after splitting + 3.easypoi-base -- Import and export package, realize Excel Import/Export, Word Export + 4.easypoi-web -- Based on AbstractView, Coupled with spring MVC, greatly simplifies the export function + 5.sax -- Optional, Export uses xercesImpl, Word Export uses poi-scratchpad + + If you don't use spring MVC, only easypoi-base is enough. +-------------------------- +maven +-------------------------- +https://oss.sonatype.org/content/groups/public/ +```xml + + cn.afterturn + easypoi-spring-boot-starter + 4.1.2 + + + cn.afterturn + easypoi-base + 4.1.2 + + + cn.afterturn + easypoi-web + 4.1.2 + + + cn.afterturn + easypoi-annotation + 4.1.2 + + ``` + + +-------------------------- +pom +-------------------------- -Maven 引入方式 ```xml - - cn.afterturn - easypoi-spring-boot-starter - 4.0.0 - + + + xerces + xercesImpl + ${xerces.version} + true + + + org.apache.poi + poi-scratchpad + ${poi.version} + true + + + + + org.apache.poi + ooxml-schemas + 1.3 + true + + + + + org.hibernate + hibernate-validator + 5.1.3.Final + true + + + + org.apache.bval + org.apache.bval.bundle + 1.1.0 + + + + + com.itextpdf + itextpdf + 5.5.6 + true + + + com.itextpdf + itext-asian + 5.2.0 + true + ``` +----------------- +Current test coverage +---------------- +|Package|Class|Method|Line| +|----|----|----|----| +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) -需要spring-boot-starter-web 来支持 -不需要在配置@ComponentScan("cn.afterturn.easypoi") - -和easypoi版本保持一致 \ No newline at end of file