release-3.10.0(2020/12/26)

  • 支持水印添加;

release-3.9.10(2020/11/21)

  • 修复自定义ExcelBuilder出现outside package问题;
  • 修复图片仅能在一单元格展示,无法在合并单元格展示问题;
  • 修复导出大量数据时,边框样式可能导致的样式数量超标问题;
  • 优化图片导出,图片单元格左、上留出一像素空白,避免图片混杂问题;

release-3.9.8(2020/10/31)

  • 修复SaxExcelReader导入Map时,空单元格导致的列不连续问题;

release-3.9.7(2020/10/18)

  • 修复DefaultStreamExcelBuilder设置style宽度无效问题;
  • 优化DefaultStreamExcelBuilder生产者消费者流程,提升导出性能;

release-3.9.6(2020/10/06)

  • 修复DefaultStreamExcelBuilder多sheet情况下无法个性化处理冻结等问题;
  • DefaultExcelBuilder、DefaultStreamExcelBuilder支持自定义冻结行列功能;
  • DefaultExcelReader新增startSheet方法,方便在读取前获取如行数等信息;
  • 移除lombok依赖;
  • DefaultExcelReader、DefaultStreamExcelBuilder部分代码重构,提升可读性;
  • 升级部分依赖;

release-3.9.5(2020/09/05)

  • 修复map导出设置全局样式失效问题;
  • 修复Sax读取缓存,空字符在极端情况下无法正常读取问题;
  • 修复并发使用DefaultStreamExcelBuilder.asyncAppend方法时线程不安全问题;
  • DefaultStreamExcelBuilder新增startSheet方法,支持sheet创建后前置处理;
  • 新增创建完成sheet后,默认自适应打印页;
  • 新增map导出,支持设置数据类型,如超链接等;
  • 新增SaxExcelReader.startSheet方法,支持sheet读取前置处理;

release-3.9.1(2020/07/04)

  • 修复DefaultStreamExcelBuilder在部分异常情况下,消费者线程无法被终止问题;
  • DefaultStreamExcelBuilder新增of(dataType,file)、of(dataType,inputStream)接口,支持按文件\文件流续写;
  • 进一步去除lombok;

release-3.9.0(2020/06/27)

  • SaxExcelReader新增readAllSheet方法,无需逐一设置需要读取sheet;
  • 模板导出支持单元格多样式(span分隔);
  • 代码优化(命名、格式);

release-3.8.2(2020/06/20)

  • 修复导出图片时,因图片后缀大小写问题导致的导出失败问题;
  • 新增对pict、wmf格式图片导出支持;

release-3.8.1(2020/06/02)

  • 修复读取xls文件多sheet错误问题;

release-3.8.0(2020/05/31)

  • 修复导出Map数据时,null数据显示为“null”字符问题;
  • 修复导出图片时,部分图片无法正常导出问题;
  • SaxExcelReader新增readThen(file , (data,context)->{})接口,可获取行上下文信息;
  • 移除部分lombok,降低包大小;

release-3.7.2(2020/04/18)

  • 修复读取excel空行问题;
  • 修复读取数值精度问题,如原数值3.98,读取后可能会是3.9799999999999999998;
  • DefaultStreamExcelBuilder支持在close方法中主动删除临时文件,避免用户手动删除;
  • 优化Html2ExcelStreamFactory代码;

release-3.7.0(2020/04/11)

  • DefaultStreamExcelBuilder新增asyncAppend方法,屏蔽多线程细节;
  • 优化FreemarkerTemplateHandler,增加对Java8时间类支持;
  • 优化读取异常字段的信息;

release-3.6.0(2020/03/29)

  • DefaultStreamExcelBuilder支持追加模板;
  • 重构各ExcelBuilder;
  • 重命名配置类;

release-3.5.0(2020/03/08)

  • 修复图片导出宽度为0问题,图片自适应对应单元格;
  • 修复DefaultStreamExcelBuilder多线程导出,隔行样式错乱问题;
  • 模板导出支持绝对路径导出-fileTemplate
  • 链接无样式时采用默认样式(蓝色字体,下划线);
  • @ExcelModel全局样式支持单列样式,如title&1,表示第一列标题;
  • 支持Map导出样式设置;
  • 支持模板导出识别标准超链接<a href="http://www.baidu.com">百度</a>
  • 支持设置边框时使用border-style,一次性设置所有边框,无需单独设置,简化操作;
  • 重构DefaultExcelBuilder\DefaultStreamExcelBuilder样式解析模块;
  • 过期hasStyle方法,默认有样式时填充样式;
  • 过期模板导出template方法,使用classpathTemplate代替;
  • 过期WidthStrategy.CUSTOM_WIDTH自定义宽度策略,支持任何宽度策略模式下宽度设置;
  • 过期globalStyle方法,使用style方法代替;
  • 升级模板导出jsoup版本,大幅提升模板导出性能以及内存占用;

release-3.4.0.RELEASE(2020/02/18)

  • 删除极速读取模式;
  • 支持注解width设置为0,以便隐藏列;
  • 新增width只设定某列宽度;
  • 新增hideColumns方法;
  • 优化读取缓存逻辑;

release-3.4.0.RC(2020/02/02)

  • 修复CsvBuilder线程安全问题;
  • CsvBuilder与DefaultExcelBuilder统一模型,便于源码阅读以及统一升级;
  • 延迟CsvBuilder临时文件创建时机,仅在有数据时创建;
  • CsvBuilder支持Map导出,csv/excel对Map导出时无需指定fieldDisplayOrder,采用Map默认顺序;
  • Csv导出Bigdecimal时,支持格式化;
  • 大幅优化部分大数据Excel读取的内存占用,平均内存占用大约在200~300兆;
  • 支持无ExcelColumn注解读取,此时默认对所有字段按默认顺序读取;
  • 导出时数据转换添加转换器缓存,以提升导出性能;
  • 支持全局设置时间、数值格式化,对于多时间属性或数值属性,不必一一设置格式化;
  • 新增ExcelModel注解代替ExcelTable注解,新增IgnoreColumn代替ExcludeColumn注解,增强语义、识别度;
  • 代码优化,删除冗余代码以及语义不详代码;
  • DefaultExcelBuilder、DefaultStreamExcelBuilder支持公式导出;
  • 统一.xlsx、.xls、.csv SAX方式读取模型,使用单例降低内存抖动以及提升读取性能;

release-3.3.2(2020/01/11)

  • 支持jfinal的enjoy模板引擎;
  • 支持velocity模板引擎;
  • 设置模板导出默认宽度策略为计算自动宽度策略,平衡导出时间与样式展示;

release-3.3.0.RELEASE(2020/01/04)

  • 修复子类属性覆盖父类属性BUG;
  • DefaultExcelBuilder、DefaultStreamExcelBuilder强类型检查;
  • 时间类采用POI自身格式化;
  • 统一@ExcelColumn中decimalFormat、dateFormatPattern为format,减少配置项名称;
  • 完善异常提示时信息-如异常文件名称、字段等,方便查找错误信息;
  • 修正错误的方法名称-cancle;
  • 支持DefaultExcelBuilder、DefaultStreamExcelBuilder动态全局样式设置-globalStyle;
  • 支持@ExcelColumn中mapping反向读取;
  • 规范方法名称-sheet()(单一sheet)、sheets()(多sheet);
  • 公式写入主动去除“=”号;
  • 过期DefaultExcelBuilder、DefaultStreamExcelBuilder getInstance方法,使用of方法代替;

release-3.3.0.GA(2019/12/22)

  • DefaultExcelReader支持读取图片;

release-3.2.4(2019/12/21)

  • 修复Bean字段重名无覆盖问题;
  • 修复Bean父类字段默认导出在子类之后问题;
  • 支持模板图片导出;

release-3.2.3(2019/12/19)

  • 支持带括号负值形式读取;
  • 支持BigInteger读取;
  • 新增DefaultExcelReader\SaxExcelReader noTrim方法;
  • 优化DefaultExcelReader\SaxExcelReader,默认读取时trim;
  • 优化DefaultStreamExcelBuilder生产者消费者模式,避免消费者线程不受控风险;
  • 优化读取逻辑,降低内存分配频率;

release-3.2.2(2019/11/30)

  • 修复csv生成与读取未识别编码问题;

release-3.2.1(2019/11/16)

  • 修复字体加粗样式与颜色样式无法共存问题;
  • 修复SaxExcelReader读取多sheet异常问题;
  • 修复超链接无下划线问题;
  • 支持Bean按title读取;

release-3.0.2(2019/10/26)

  • 修复csv读写bug;
  • 支持一次性读取多张sheet;

release-3.0.1.RELEASE(2019/10/18)

  • 修复模板读取含逗号数值无效问题;
  • 支持Map方式写入多sheet;

release-3.0.0.RELEASE(2019/10/15)

  • 修复全局设定内容单元格样式无前缀情况下无效问题;
  • 支持Excel数值型日期读取(如43927.678879879);
  • 支持导入时数据转换异常自定义处理机制;
  • 修改Bigdecimal导出方式,默认为数值,格式化后依然为数值;
  • 性能优化;

release-3.0.0.RC1(2019/10/11)

  • 修复读取科学计数数据错误问题;
  • 优化计算宽度;
  • 其他性能优化;

release-3.0.0.RC(2019/09/28)

  • 重写DefaultExcelBuilder,基于DefaultStreamExcelBuilder,根源上解决性能慢问题;
  • DefaultExcelBuilder、DefaultStreamExcelBuilder支持图片导出;
  • DefaultExcelBuilder、DefaultStreamExcelBuilder支持全局样式设置,隔行样式设置;
  • 支持自定义行高度;
  • 修复DefaultExcelBuilder、DefaultStreamExcelBuilder自定义样式无效问题;
  • DefaultStreamExcelBuilder新增cancel、clear接口,增强资源主动清理能力;
  • 删除rowAccessWindowSize选项,不予向下兼容;
  • 修改autoWidthStrategy方法为widthStrategy方法;
  • 新增各项单元测试,提升项目稳定性;
  • 原DefaultStreamExcelBuilder的start(int waitQueueSize,Class[] groups)参数改为方法选项,waitQueueSize()、groups();
  • 同一文件续写时支持同名称续写;
  • 重构SaxExcelReader,提升代码可读性;
  • CsvBuilder新增append功能,允许对已生成的文件进行数据追加;
  • 修复读取含小数点整数错误问题;
  • 修复DefaultStreamExcelBuilder海量数据导出多sheet页,无法全部固定标题行问题;
  • 新增读取异常时,相关行以及内容提示,加快问题定位速度;
  • DefaultStreamExcelBuilder时间处理类增加缓存;

release-2.8.4(2019/08/17)

  • 修复读取非“UTF-8”编码的CSV文件时,中文乱码问题,允许指定文件编码;

release-2.8.3(2019/08/14)

  • 修复读取excel文件Date类型数据时,SimpleDateFormat线程安全问题;
  • 删除SaxExcelReader获取excel文件样式操作,读取速度提升30%;

release-2.8.2(2019/08/05)

  • 修复DefaultExcelBuilder、DefaultStreamExcelBuilder固定标题行无法横向移动问题;
  • 修复SaxExcelReader读取.xls文件流失败问题;
  • 新增DefaultExcelBuilder、DefaultStreamExcelBuilder简单映射支持;
  • 新增DefaultExcelBuilder动态Map导出自定义宽度支持;
  • 新增各个Excel构建器closeable支持,异常情况下try-with-resource主动关闭相关资源;
  • 优化部分代码;

release-2.8.0(2019/08/03)

  • 新增CsvBuilder,支持生成.csv文件;
  • 新增.csv文件读取模块,使用SaxExcelReader读取;

release-2.7.3(2019/07/21)

  • 修复空Tr情况下报java.lang.UnsupportedOperationException异常问题;
  • 修复读取Bigdecimal时,未除去非字符,如“,”等导致的错误问题;
  • 新增DefaultExcelBuilder\DefaultStreamExcelBuilder下拉列表支持;
  • 新增DefaultExcelBuilder\DefaultStreamExcelBuilder自定义样式支持;
  • 新增DefaultExcelBuilder\DefaultStreamExcelBuilder金额格式化支持;
  • 优化AttachmentExportUtil导出content-type,明确类型;
  • 其他数据结构、内存优化;

release-2.7.2(2019/07/13)

  • 修复DefaultExcelBuilder/DefaultStreamExcelBuilder非连续列复杂表头共存问题;
  • SaxExcelReader支持按sheet名称读取;

release-2.7.1(2019/07/06)

  • 修复导出zip压缩包未主动关闭问题(未关闭实际也不影响);
  • 修复DefaulExcelBuilder除标题外无其他数据时样式不生效问题;
  • DefaulExcelBuilder支持Map<String,Object>数据结构数据导出;
  • 优化DefaultStreamExcelBuilder发生异常时临时文件的处理流程;
  • 优化AttachmentExportUtil导出Path流程,主动删除Path;
  • 优化核心模型数据结构,导出效率提升;

release-2.7.0(2019/06/29)

  • 修复在SXSSF模式下因提前写入磁盘导致合并单元格错误问题;
  • 新增DefaultExcelBuilder、DefaultStreamExcelBuilder多级表头功能;
  • 新增读取Excel时间戳(Timestamp)的支持;
  • 新增DefaultStreamExcelBuilder导出zip压缩文件的支持(DefaultStreamExcelBuilder.buildAsZip(“xxxx”));
  • 新增AttachmentExportUtil对一般性Path导出支持;
  • 优化DefaultStreamExcelBuilder转化workbook为path流程,使用提供的线程池异步转化,提升导出效率;
  • 优化SXSSF默认窗口内存保存行数为1;
  • 优化默认workbook类型为SXSSF,降低实际生产使用中内存占用;
  • 优化DefaultStreamExcelBuilder模型,降低一次性追加数据导致的内存急剧增长问题(使用Jprofiler测试,一百万数据,除首次导出所占内存较高外(三四百兆内),稳定占用内存一百兆左右);
  • 优化导出Excel模型边界定义,降低代码错误的可能性;

release-2.6.2(2019/06/22)

  • 修复使用自定义方式导致空指针问题;
  • 新增读取自定义终止接口;

release-2.6.1(2019/06/19)

  • 修复SaxExcelReader的sheet设置无法生效问题;

release-2.6.0(2019/06/18)

  • DefaultStreamExcelBuilder新增文件分割,允许设定生成的Excel容量,超过该容量后会自动创建新的Excel;

release-2.5.1(2019/06/15)

  • 修复追加sheet的数据为空时导致的追加失败问题;
  • 修复追加sheet导致的原配置失效问题;
  • 修复使用@ExcelTable导致的静态字段被导出问题,默认静态字段不被导出,也可通过ignoreStaticFields=false取消;
  • 修改使用同一类类型,sheet名称无法自增长问题;
  • 修复选择自动列宽设置错误问题;
  • 修复设置workbook类型部分情况下不生效问题;
  • 修复DefaultStreamExcelBuilder无法直接固定标题行问题;
  • 新增DefaultExcelBuilder\DefaultStreamExcelBuilder自动换行,默认为true,可通过@ExcelTable中wrapText取消;
  • 修改DefaultExcelBuilder\DefaultStreamExcelBuilder部分数据结构为LinkedList,降低内存要求;
  • 修改快速移除数据逻辑,提升数据处理效率;
  • 优化部分转换操作,避免海里数据列表整体复制;

release-2.5.0(2019/05/30)

  • 模板导出支持自动换行(word-break);
  • DefaultExcelBuilder、DefaultStreamExcelBuilder支持固定标题;
  • DefaultExcelBuilder、DefaultStreamExcelBuilder支持Bean属性类型强转为String,避免诸如Long类型数据变成科学计数法等问题;

release-2.3.4(2019/05/30)

  • 修复ThymeleafExcelBuilder导出时FileSystemNotFound异常问题;

release-2.3.3(2019/05/29)

  • 修复workbook读取未及时关闭相关资源问题;

release-2.3.2(2019/05/27)

  • 修复workbook导出时部分excel提示“由于一些内容不可读取,Excel 无法打开 订单信息.xlsx。是否要打开并修复此工作簿?”问题;

release-2.3.1(2019/05/26)

  • 模板引擎单例,提升模板构建性能;
  • 模板所需模板由文件读写改为StringWriter,提升模板构建性能;
  • 读取转换抽象

release-2.3.0(2019/05/18)

  • 新增SaxExcelReader,支持sax方式读取,避免OOM;
  • 优化读取转换方式,性能提升;
  • DefaultExcelReader新增beanFilter方法,支持bean过滤;
  • 增加Bean反射缓存;
  • 升级jsoup为1.12.1,模板方式导出性能提升,内存占用降低;

release-2.2.1(2019/05/10)

  • 修正DefaultExcelReader读取Boolean型错误问题(该问题仅在2.2.0版本存在);

release-2.2.0(2019/05/04)

  • 模板导出支持公式导出;
  • 支持字段原生类型导出(非全部为String);
  • 支持行隐藏;

release-2.1.4(2019/04/27)

  • 新增ThymeleafExcelBuilder;
  • 允许DefaultExcelBuilder\DefaultStreamExcelBuilder、FreemarkerExcelBuilder等自定义单元格宽度;
  • 新增获取workbook输入流接口;
  • Html文件解析性能优化;
  • poi依赖包版本升级-4.1.0;
  • beetl依赖包设置为可选;

release-2.1.3(2019/04/13)

  • 修复FreemarkerExcelBuilder等对sxlsx文件导出时错误问题;
  • 新增DefaultExcelReader 读取每一行然后处理接口;
  • 修改部分ArrayList数据结构为LinkedList,降低对内存的依赖性;
  • 设置.xls文件自定义颜色不可用,只允许使用预定义背景色;
  • 新增DefaultExcelReader导入时日志;

release-2.1.2(2019/03/30)

  • 修复单元格位置调整错误问题;
  • BeetlExcelBuilder\GroovyExcelBuilder\FreemarkerExcelBuilder默认采用自动列宽策略;

release-2.1.1(2019/03/28)

  • 修复单元格位置调整错误问题

release-2.1.0(2019/03/23)

  • 新增DefaultExcelReader,支持Excel导入为List;
  • DefaultExcelBuilder、DefaultStreamExcelBuilder新增接口,允许基于指定的workbook构建,方便一个workbook多sheet、多类型数据导出;
  • DefaultExcelBuilder、DefaultStreamExcelBuilder新增noStyle(hasStyle)接口,允许无样式导出;
  • 新增自动列宽策略,允许用户选择策略导出,策略包含:无自动列宽、自动列宽(时间消耗严重,效果好)、组件自动列宽(由工具包计算,性能好,但效果略差,此策略为默认策略);
  • 修改DefaultStreamExcelBuilder默认样式为:无样式、无自动列宽;
  • 支持在html文件中进行字体颜色设置;
  • 导出工具类(AttachmentExport\FileExport)新增加密导出接口(只针对.xlsx文件有效);
  • @ExcelTable新增defaultValue属性,允许当导出属性为NULL时设置默认值;
  • @ExcelColumn新增defaultValue属性,允许当导出属性为NULL时设置默认值,覆盖@ExcelTable的defaultValue;
  • 优化部分代码,减少内存占用以及性能提升;

release-2.0.0(2019/03/11)

  • 项目名称修改为myexcel,去除原名称带来的歧义-html仅仅只是转化为excel的工具包。html的作用只是作为模板;

release-1.4.1(2019/02/23)

  • 新增AttachmentExportUtil、FileExportUtil工具类,导出文件名称无需后缀,主动关闭工作簿,使导出更容易;
  • 代码常量优化;
  • example中示例代码优化;
  • example中模板文件优化,去除非table元素,模板更清晰;

release-1.4.0(2019/02/13)

  • 新增DefaultStreamExcelBuilder流式导出海量数据功能,生产者消费者模式,数据批次构建,极大降低内存占用以及导出时间;
  • @ExcelTable新增useFieldNameAsTitle属性,默认为false,允许使用字段名字作为标题;
  • @ExcelColumn新增分组属性,允许DefaultExcelBuilder传入分组字段,字段动态选择性导出;
  • 缓存由LinkedHashMap修改为WeakHashMap,降低内存占用导致的可能的问题;
  • 修正表格因字体大小、加粗导致的自适应宽度失效问题;
  • DefaultExcelBuilder新增指定类构建Excel,使用该方式,数据为空时也可导出标题列;
  • 修改DefaultExcelBuilder字段格式化方式;
  • 修正DefaultExcelBuilder构建Excel数据为空时无法导出标题问题;
  • 修正DefaultExcelBuilder设置条件限制不严格问题;
  • 修正错误注释;
  • 修正模板文件路径必须包含“/”问题,允许只提供文件名称;
  • 优化GroovyExcelBuilder设置模板流程,解决模板文件路径可能误加“/”导致的无法找到模板问题;
  • 优化ExcelBuilder的build接口参数,不强制要求参数类型为Map<String,Object>,参数改为Map<String,T>;
  • 项目基础模块重构,完善接口;
  • example项目中示例重构,更清晰、完整;

release-1.3.1

  • 优化精简数据结构,降低内存占用;
  • 修复非首行高度无法自适应问题;
  • 修复注解@ExcelTable中includeAllField与excludeParent共存问题;
  • excel生成流程优化;

release-1.3.0

  • 支持POI的SXSSF模式;
  • 优化生成Excel时的内存占用;
  • 优化生成Excel时的流程;