<p align="center" id="e-b">
<img src="https://raw.githubusercontent.com/magic-core/logo/master/excel-boot.png" >
<p align="center">
<a href="https://github.com/programmeres/easy-poi/releases">
<img src="https://img.shields.io/github/release/programmeres/easy-poi.svg" >
</a>
<a href="https://opensource.org/licenses/artistic-license-2.0.php">
<img src="https://img.shields.io/github/license/programmeres/easy-poi.svg" >
</a>
<a href="#e-b">
<img src="https://img.shields.io/badge/coverage-100%25-red.svg" >
</a>
<a href="https://www.codacy.com/project/programmeres/excel-boot/dashboard?utm_source=github.com&utm_medium=referral&utm_content=programmeres/excel-boot&utm_campaign=Badge_Grade_Dashboard">
<img src="https://api.codacy.com/project/badge/Grade/90ac9cd605fe47dc835f0d571973e150" >
</a>
<a href="https://gitee.com/nw1992/easy-poi#project-donate-overview">
<img src="https://img.shields.io/badge/donate-%EF%BF%A5-orange.svg" >
</a>
</p>
</p>
**Excel-Boot是一款Excel导入导出解决方案组成的轻量级开源组件。**
**如果喜欢或愿意使用, 请star本项目或者点击donate图标捐赠我们**
**如果是企业使用, 为了产品推广, 请通过评论、Issue、PullRequest README的合作企业告诉我们企业名称**
**请先仔细阅读本说明, 然后如果有任何问题或者建议可以通过issue告知我们, 尽力第一时间解决您的问题**
## 合作企业:
## 开源库地址(同步更新):
GitHub:<https://github.com/programmeres/excel-boot>
码云:<https://gitee.com/nw1992/easy-poi>
## 功能简介
1. 浏览器导出Excel文件(支持单/多sheet)
2. 浏览器导出Excel模板文件
3. 指定路径生成Excel文件(支持单/多sheet)
4. 返回Excel文件(支持单/多sheet)的OutputStream, 一般用于将Excel文件上传到远程, 例如FTP
5. 导入Excel文件(支持单/多sheet)
## 功能强大
1.解决导出大量数据造成的内存溢出问题(支持分页查询数据库、采用poi官方推荐api(SXSSFWorkbook), 实现指定行数刷新到磁盘)
2.解决导入大量数据造成的内存溢出问题(支持分页插入数据库、采用poi官方推荐api(XSSF and SAX),采用SAX模式一行行读取到内存当中去)
3.解决含有占位符的空假行造成的读空值问题
4.解决Long类型或者BigDecimal的精度不准问题
## 组件特色
1.导入可以自定义解析成功或失败的处理逻辑
2.导出支持分页查询、全量查询, 自定义每条数据的处理逻辑
3.内置缓存, 3万条11列数据, 排除查询数据所用时间, 第一次导出2.2s左右、第二次导出在1.4s左右;第一次导入3.5s左右、第二次导入2.5s左右
4.注解操作, 轻量且便捷
5.内置常用正则表达式类RegexConst(身份证号、手机号、金额、邮件)
6.可配置是否适配单元格宽度, 默认开启(单元格内容超过20个汉字不再增加宽度, 3万条11列数据, 耗时50ms左右, 用时与数据量成正比)
7.假如出现异常,Sheet、行、列位置也都一并打印
8.注解中的用户自定义字符串信息以及Excel信息已全部trim,不用担心存在前后空格的风险
9.Excel样式简洁、大方、美观
10.导出的单条数据假如全部属性都为null或0或0.0或0.00或空字符串者null字符串,自动忽略,此特性也可让用户自定义忽略规则
11.除了直接返回OutputStream的方法以外的导出方法, 正常或异常情况都会自动关闭OutputStrem、Workbook流
## 组件需知
### 导入&导出
1.导入和导出只支持尾缀为xlsx的Excel文件
2.标注注解的属性顺序即Excel列的排列顺序
3.时间转化格式(dateFormat)默认为“yyyy-MM-dd HH:mm:ss“
### 导入
1.当导入Excel, 读取到空行, 则停止读取当前Sheet的后面数据行
2.导入Excel文件, 单元格格式使用文本或者常规, 防止出现不可预测异常
3.导入字段类型支持:Date、Short(short)、Integer(int)、Double(double)、Long(long)、Float(float)、BigDecimal、String类型
4.导入BigDecimal字段精度默认为2, roundingMode默认为BigDecimal.ROUND_HALF_EVEN, scale设置为-1则不进行格式化
5.第一行有效单元格内必须包含内容并且以第一行为依据, 导入Excel文件列数必须等于标注注解的属性数量
6.Date类型字段,Excel与时间转化格式(dateFormat)相比,格式要保持一致(反例:2018/12/31和“yyyy-MM-dd“)并且长度要一致或更长(反例:"2018-12-31"和yyyy-MM-dd HH:mm:ss"),否则SimpleDateFormat将解析失败,报 “Unparseable date:”
### 导出
1.导出BigDecimal字段默认不进行精度格式化
2.分页查询默认从第一页开始, 每页3000条
3.Excel每超过2000条数据, 将内存中的数据刷新到磁盘当中去
4.使用分Sheet导出方法, 每8万行数据分Sheet
5.当使用(exportResponse、exportStream、generateExcelStream)方法时, 当单个Sheet超过100万条则会分Sheet
6.标注属性类型要与数据库类型保持一致
7.如果想提高性能, 并且内存允许、并发导出量不大, 可以根据实际场景适量改变分页条数和磁盘刷新量
## 扩展
1.新建子类继承ExcelBoot类, 使用子类构造器覆盖以下默认参数, 作为通用配置
2.直接调用以下两个构造器, 用于临时修改配置
```java
/**
* HttpServletResponse 通用导出Excel构造器
*/
ExportBuilder(HttpServletResponse response, String fileName, Class excelClass, Integer pageSize, Integer rowAccessWindowSize, Integer recordCountPerSheet, Boolean openAutoColumWidth)
/**
* OutputStream 通用导出Excel构造器
*/
ExportBuilder(OutputStream outputStream, String fileName, Class excelClass, Integer pageSize, Integer rowAccessWindowSize, Integer recordCountPerSheet, Boolean openAutoColumWidth)
```
```java
/**
* Excel自动刷新到磁盘的数量
*/
public static final int DEFAULT_ROW_ACCESS_WINDOW_SIZE = 2000;
/**
* 分页条数
*/
public static final int DEFAULT_PAGE_SIZE = 3000;
/**
* 分Sheet条数
*/
public static final int DEFAULT_RECORD_COUNT_PEER_SHEET = 80000;
/**
* 是否开启自动适配宽度
*/
public static final boolean OPEN_AUTO_COLUM_WIDTH = true;
```
## 版本
当前为2.0版本, 新版本正在开发(包括:导出Word、PDF、单元格合并等)
## 使用手册
1.引入Maven依赖
2.将需要导出或者导入的实体属性上标注@ExportField或@ImportField注解,并根据自己需要编写属性
3.在使用者项目相应的代码中粘贴相应的导出或者导入代码
4.将Demo中注释标明:"需要使用本组件的开发者自己定义的" 的替换成自己项目中的类
5.将开发者自定义逻辑编写到导出pageQuery或者导入onProcess方法中
6.将开发者自定义逻辑编写到导出convert或者导入onError方法中
### POM.xml
```xml
<dependency>
<groupId>io.github.magic-core</groupId>
<artifactId>excel-boot</artifactId>
<version>2.0</version>
</dependency>
```
### 导出导入实体对象
```java
/**
* 导出导入实体对象
*
* 导出注解说明
* columnName:导出Excel列名
* scale:导出BigDecimal类型格式化精度
* roundingMode:导出BigDecimal类型舍入规则
* dateFormat:导出Data类型格式化模式
* defaultCellValue:导出模板默认值
*
* 导入注解说明
* required:是否非空校验
* regex:正则校验规则
* regexMessage:正则校验失败信息
* scale:导出BigDecimal类型格式化精度
* roundingMode:导出BigDecimal类型舍入规则
* dateFormat:导出Data类型格式化模式
*/
public class UserEntity {
/**
* Integer类型字段
*/
@ExportField(columnName = "ID", defaultCellValue = "1")
@ImportField(required = true)
private Integer id;
/**
* String类型字段
*/
@ExportFi
没有合适的资源?快使用搜索试试~ 我知道了~
Easy-POI是一款Excel导入导出解决方案组成的轻量级开源组件。.zip
共23个文件
java:18个
xml:1个
gitignore:1个
需积分: 3 0 下载量 181 浏览量
2024-01-15
10:15:03
上传
评论
收藏 34KB ZIP 举报
温馨提示
方案是为解决特定问题或达成特定目标而制定的一系列计划或步骤。它的作用是提供一种系统性的方法,以有效地应对挑战、优化流程或实现目标。以下是方案的主要作用: 问题解决: 方案的核心目标是解决问题。通过系统性的规划和执行,方案能够分析问题的根本原因,提供可行的解决方案,并引导实施过程,确保问题得到合理解决。 目标达成: 方案通常与明确的目标相关联,它提供了一种达成这些目标的计划。无论是企业战略、项目管理还是个人发展,方案的制定都有助于明确目标并提供达成目标的路径。 资源优化: 方案在设计时考虑了可用资源,以最大化其效用。通过明智的资源分配,方案可以在有限的资源条件下实现最大的效益,提高效率并减少浪费。 风险管理: 方案通常会对潜在的风险进行评估,并制定相应的风险管理策略。这有助于减轻潜在问题的影响,提高方案的可行性和可持续性。 决策支持: 方案提供了决策者所需的信息和数据,以便做出明智的决策。这种数据驱动的方法有助于减少不确定性,提高决策的准确性。 团队协作: 复杂的问题通常需要多个人的协同努力。方案提供了一个共同的框架,帮助团队成员理解各自的职责和任务,促进协作并确保整个团队朝着共同的目标努力。 监控与评估: 方案通常包括监控和评估的机制,以确保实施的有效性。通过定期的评估,可以及时调整方案,以适应变化的环境或新的挑战。 总体而言,方案的作用在于提供一种有序、有计划的方法,以解决问题、实现目标,并在实施过程中最大化资源利用和风险管理。
资源推荐
资源详情
资源评论
收起资源包目录
Easy-POI是一款Excel导入导出解决方案组成的轻量级开源组件。.zip (23个子文件)
SJT-code
_config.yml 26B
pom.xml 4KB
src
main
java
com
excel
poi
annotation
ImportField.java 2KB
ExportField.java 2KB
factory
ExcelMappingFactory.java 4KB
common
RegexUtil.java 1KB
DateFormatUtil.java 2KB
RegexConst.java 2KB
Constant.java 2KB
StringUtil.java 2KB
function
ExportFunction.java 1KB
ImportFunction.java 1KB
entity
ErrorEntity.java 989B
ExcelEntity.java 874B
ExcelPropertyEntity.java 2KB
exception
ExcelBootException.java 1KB
AllEmptyRowException.java 998B
ExcelBoot.java 15KB
excel
ExcelWriter.java 13KB
ExcelReader.java 16KB
LICENSE 8KB
.gitignore 108B
README.md 21KB
共 23 条
- 1
资源评论
JJJ69
- 粉丝: 6006
- 资源: 5593
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功