馨渡 2017-04-10 03:28 采纳率: 0%
浏览 1328

利用Excel分页导出数据出现数据丢失,重复导出第一页的数据

@RequestMapping("/exportExcel")
public void export(Model model, DataTable dataTable, HttpServletRequest request, HttpServletResponse response) {
PageRequest pageRequest = dataTable.toPageRequest();
pageRequest.setPageNo(1);
pageRequest.setPageSize(10);
Page page = Entity.create(entityClass).page(pageRequest, filter(model, request));
int totalPage = page.getTotalPages();
Iterator it = page.iterator();
Excel excel = ExcelFactory.createExcel("export.xls");
excel.setWorkingSheet(0);
CellStyle cellStyle = excel.getWorkBook().createCellStyle();
cellStyle.setWrapText(true);
AgencyWithdrawEntity item = null;
String[] title = { "代理名称", "开户行", "抬头/户名", "卡号","提现金额", "货币代码", "货币名称", "人民币转账", "参考汇率", "状态", "申请时间" ,"失败原因"};
for (int i = 0; i < title.length; i++) {
excel.cell(0, i).value(title[i]);
}
CellEditor editor = null;
int index = 1;
for (int i = 1; i <= totalPage; i++) {
while (it.hasNext()) {
item = it.next();
editor = excel.cell(index, 0);
editor.value(StringUtils.isNotBlank(item.getAgencyName()) ? item.getAgencyName() : "" );
editor = excel.cell(index, 1);
editor.value((StringUtils.isNotBlank(item.getBankName()) ? item.getBankName() : ""));
editor = excel.cell(index, 2);
editor.value(item.getAccountName());
editor = excel.cell(index, 3);
editor.value(item.getBankAccount());
editor = excel.cell(index, 4);
editor.value(new Money(item.getWithAmountSrt()));
editor = excel.cell(index, 5);
editor.value(item.getMoneyName());
editor = excel.cell(index, 6);
editor.value(item.getMoneyTitle());
editor = excel.cell(index, 7);
editor.value(item.getRmbAmountSrt());
editor = excel.cell(index, 8);
double rate;
if (item.getCurrentRate() ==null ) {
rate=0;
}else
rate=item.getCurrentRate()/1.035;
DecimalFormat format = new DecimalFormat("#####0.000000");
editor.value(format.format(rate));
editor = excel.cell(index, 9);

editor.value(item.getStatusStr());
editor = excel.cell(index, 10);
editor.value(DateUtils.formatDate(item.getGmtCreate(), "yyyy-MM-dd HH:mm:ss"));
editor = excel.cell(index, 11);
editor.value(item.getBackReason());
index++;
}
page = Entity.create(entityClass).page(new PageRequest(i + 1, 10), filter(model, request));
it = page.iterator();

}
try {
response.addHeader("Content-Disposition", "attachment; filename=\"export.xls\"");
excel.saveExcel(response.getOutputStream());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

  • 写回答

1条回答 默认 最新

  • kk1993wangliang 2017-04-10 05:54
    关注

    分页查询 单次导出就是单页的数据啊,你要是想一次导出所有数据就写一个查询所有的方法。

    评论

报告相同问题?

悬赏问题

  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机