内容简介:MyExcel,是一个集导入、导出、加密Excel等多项功能的Java工具包。 导入:提供简便的API,读取Excel内容,并转化为List< Bean >。 导出:可快速导出海量数据的简单列表,可生成高复杂度布局的Excel,复杂布局指的...
MyExcel,是一个集导入、导出、加密Excel等多项功能的 Java 工具包。
- 导入:提供简便的API,读取Excel内容,并转化为List< Bean >。
- 导出:可快速导出海量数据的简单列表,可生成高复杂度布局的Excel,复杂布局指的是包含多种不规则合并单元格、背景色、字体大小、斜体、下拉列表等,可自动划分Excel生成zip压缩包。
用近2个月时间重构,MyExcel 3.0.0.RC版本于今日正式发布使用,本次修改点概览如下:
- 修复DefaultExcelBuilder、DefaultStreamExcelBuilder自定义样式无效问题;
- 修复读取含小数点整数错误问题;
- 修复DefaultStreamExcelBuilder海量数据导出多sheet页,无法全部固定标题行问题;
- 修复DefaultStreamExcelBuilder续写时重设工作簿类型错误;
- 基于DefaultStreamExcelBuilder重写DefaultExcelBuilder,在保证API简单便捷的情况下,根源上解决性能问题;
- 新增DefaultExcelBuilder、DefaultStreamExcelBuilder支持图片导出;
- 新增DefaultExcelBuilder、DefaultStreamExcelBuilder支持全局样式设置,隔行样式设置;
- 新增DefaultExcelBuilder、DefaultStreamExcelBuilder、模板ExcelBuilder均支持自定义行高度;
- 新增DefaultStreamExcelBuilder新增cancel、clear接口,增强资源主动清理能力;
- 新增各项ExcelBuilder单元测试,提升项目稳定性;
- 新增读取异常时,相关行以及内容提示,加快问题定位速度;
- 删除rowAccessWindowSize选项,默认采用最佳实践,也避免使用者不熟悉导致的错误使用,不予向下兼容;
- 修改autoWidthStrategy方法为widthStrategy方法,加强接口语意;
- 原DefaultStreamExcelBuilder的start(int waitQueueSize,Class[] groups)参数改为方法选项,waitQueueSize()、groups();
- 同一文件续写时支持同名称续写;
- 重构SaxExcelReader,提升代码可读性;
- CsvBuilder新增append功能,允许对已生成的文件进行数据追加;
- DefaultStreamExcelBuilder时间处理类增加缓存,进一步提升导出性能;
需要注意的是,因大面积重构,造成了部分的API无法兼容3.0.0.RC以下版本:
- 删除rowAccessWindowSize选项;
- 原DefaultStreamExcelBuilder的start(int waitQueueSize,Class[] groups)参数改为方法选项,waitQueueSize()、groups();
// 新设定分组、等待队列容量方式
DefaultStreamExcelBuilder excelBuilder = DefaultStreamExcelBuilder.of(CommonPeople.class)
.start(100,CommonPeople.class);
// 新设定分组、等待队列容量方式
DefaultStreamExcelBuilder excelBuilder = DefaultStreamExcelBuilder.of(CommonPeople.class)
.groups(CommonPeople.class)
.waitQueueSize(100)
.start();
具体更新点如下:
1. 新增csv追加数据方式
CsvBuilder<CsvPeople> csvBuilder = CsvBuilder.of(People.class);
for (int i = 0; i < 10; i++) {
csvBuilder.append(data(1000));
}
Csv csv = csvBuilder.build();
AttachmentExportUtil.export(csv.getFilePath(), "test.csv", response);
// 该种方式会覆盖原append.csv文件
csv.write(Paths.get("/User/append.csv"));
// 该种方式会在原append.csv文件继续追加数据,而不是覆盖
csv.write(Paths.get("/User/append.csv"),true);
2. 自定义高度(Bean形式)
@Data
@FieldDefaults(level = AccessLevel.PRIVATE)
@ExcelTable(sheetName = "人员信息", rowHeight = 50)
public class CommonPeople {
@ExcelColumn(title = "姓名", index = 0)
String name;
@ExcelColumn(title = "年龄", index = 1)
Integer age;
@ExcelColumn(title = "是否会跳舞", groups = CommonPeople.class, index = 2)
boolean dance;
@ExcelColumn(title = "金钱", decimalFormat = "#,000.00", index = 3)
BigDecimal money;
}
设定rowHeight即可。
3. 自定义高度(模板方式)
<% DIRECTIVE SAFE_OUTPUT_OPEN; %>
<table>
<caption>${sheetName}</caption>
<thead>
<tr style="background-color: #6495ED">
<th colspan="3" style="text-align: center;vertical-align: middle;font-weight: bold;font-size: 14px;">产品介绍</th>
</tr>
<tr>
<% for(title in titles){ %>
<th>${title}</th>
<% } %>
</tr>
</thead>
<% if(data!=null){ %>
<tbody>
<% for(item in data){ %>
<tr style="height: 100px;">
<td>${item.category}</td>
<td>${item.name}</td>
<td>${item.count}</td>
</tr>
<% } %>
</tbody>
<% } %>
</table>
<%
//关闭安全输出。
DIRECTIVE SAFE_OUTPUT_CLOSE;
%>
设定高度样式 style="height: 100px;"即可。
4. 隔行样式设置
@ExcelColumn(order = 0, title = "姓名",style = {"title->color:red;","even->color:yellow;","odd->background-color:green;width:50"})
private String name;
odd、even对应奇偶行样式。
其余,请移步文档:https://github.com/liaochong/myexcel/wiki
欢迎大家使用,有任何问题可通过github issue提出,会尽量及时回复!!!
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Go 代码重构:23 倍性能提升!
- WGCLOUD 监控系统更新,重构告警信息开关组,提升性能
- 高性能监控系统 WGCLOUD 更新,重构告警消息推送机制
- Linux 监控工具 WGCLOUD 更新,重构数据源监控,提升性能
- RedisPlus 3.0.0 重构后震撼归来,优化性能和交互体验
- RedisPlus 3.0.0 重构后震撼归来 优化性能和交互体验
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
模糊数学基础及实用算法
李鸿吉编 / 科学出版社 / 2005-1 / 55.00元
本书开发了模糊数学常用的计算机程序,并以大量的算例系统地介绍了模糊数学的实用算法。本书可以作为模糊数学的应用程序包,在详细解释源代码的同时,对应用程序开发所用到的Visual Basic 6.0方法做了系统介绍,其目的是为读者做进一步的自主开发提供便利。本书所提供的源程序可以作为读者自主开发的素材。本书配有光盘,分章节提供程序源代码。 本书可以作为大专院校、培训班的教学参考书。对需......一起来看看 《模糊数学基础及实用算法》 这本书的介绍吧!