easyPoi 4.4.0版本的大批量导出使用方法
Workbook exportBigExcel(ExportParams entity, Class<?> pojoClass, IExcelExportServer server, Object queryParams)
官方的事例代码public class ExcelExportBigData {
测试类
public class ExcelExportBigData {
@Test
public void bigDataExport() throws Exception {
Workbook workbook = null;
Date start = new Date();
ExportParams params = new ExportParams("大数据测试", "测试");
/**
* params:(表格标题属性)筛选条件,sheet值
* MsgClient:表格的实体类
*/
workbook = ExcelExportUtil.exportBigExcel(params, MsgClient.class, new IExcelExportServer() {
/**
* obj 就是下面的10,限制条件
* page 是页数,他是在分页进行文件转换,page每次+1
*/
@Override
public List<Object> selectListForExcelExport(Object obj, int page) {
//page每次加一,当等于obj的值时返回空,代码结束;
if (((int) obj) == page) {
return null;
}
//不是空时:一直循环运行selectListForExcelExport。每次返回1万条数据。
List<Object> list = new ArrayList<Object>();
for (int i = 0; i < 10000; i++) {
MsgClient client = new MsgClient();
client.setBirthday(new Date());
client.setClientName("小明" + i);
client.setClientPhone("18797" + i);
client.setCreateBy("JueYue");
client.setId("1" + i);
client.setRemark("测试" + i);
MsgClientGroup group = new MsgClientGroup();
group.setGroupName("测试" + i);
client.setGroup(group);
list.add(client);
}
return list;
}
}, 10);
System.out.println(new Date().getTime() - start.getTime());
File savefile = new File("D:/home/excel/");
if (!savefile.exists()) {
savefile.mkdirs();
}
FileOutputStream fos = new
//文件生成目录FileOutputStream("D:/home/excel/ExcelExportBigData.bigDataExport.xlsx");
workbook.write(fos);
fos.close();
}
}
实体类
public class MsgClient implements java.io.Serializable {
/** id */
private java.lang.String id;
// 电话号码(主键)
@Excel(name = "电话号码")
private String clientPhone = null;
// 客户姓名
@Excel(name = "姓名")
private String clientName = null;
// 所属分组
@ExcelEntity
private MsgClientGroup group = null;
// 备注
@Excel(name = "备注")
private String remark = null;
// 生日
@Excel(name = "出生日期", format = "yyyy-MM-dd", width = 20)
private Date birthday = null;
// 创建人
private String createBy = null;
/**
* 方法: 取得java.util.Date
*
* @return: java.util.Date 生日
*/
public java.util.Date getBirthday() {
return this.birthday;
}
/**
* 方法: 取得java.lang.String
*
* @return: java.lang.String 客户姓名
*/
public java.lang.String getClientName() {
return this.clientName;
}
/**
* 方法: 取得java.lang.String
*
* @return: java.lang.String 电话号码
*/
public java.lang.String getClientPhone() {
return this.clientPhone;
}
public String getCreateBy() {
return createBy;
}
public MsgClientGroup getGroup() {
return group;
}
/**
* 方法: 取得java.lang.String
*
* @return: java.lang.String id
*/
public java.lang.String getId() {
return this.id;
}
/**
* 方法: 取得java.lang.String
*
* @return: java.lang.String 备注
*/
public java.lang.String getRemark() {
return this.remark;
}
/**
* 方法: 设置java.util.Date
*
* @param: java.util.Date 生日
*/
public void setBirthday(java.util.Date birthday) {
this.birthday = birthday;
}
/**
* 方法: 设置java.lang.String
*
* @param: java.lang.String 客户姓名
*/
public void setClientName(java.lang.String clientName) {
this.clientName = clientName;
}
/**
* 方法: 设置java.lang.String
*
* @param: java.lang.String 电话号码
*/
public void setClientPhone(java.lang.String clientPhone) {
this.clientPhone = clientPhone;
}
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
public void setGroup(MsgClientGroup group) {
this.group = group;
}
/**
* 方法: 设置java.lang.String
*
* @param: java.lang.String id
*/
public void setId(java.lang.String id) {
this.id = id;
}
/**
* 方法: 设置java.lang.String
*
* @param remark
*
* @param: java.lang.String 备注
*/
public void setRemark(java.lang.String remark) {
this.remark = remark;
}
}
这个测试方法是我在官方文档里找到的http://doc.wupaas.com/docs/easypoi/easypoi-1c10lbsojh62f