上一篇文章分享了用户下载任务的提交与下载,以及系统中对任务的保存方式,这篇文章,主要分享excel处理部分。excel处理基本流程如下:
excel处理线程首先要获得生成excel表格的基本数据(其中不包括大的查询数据),保存到新创建的beansMap中;然后对于大的数据多次查询,将多次查询结果List统一保存到一个List中,最后保存到beansMap中,通过jxls生成excel报表。
public void run() {
if(orderViewService != null && pager != null) {
if(beansMap == null)
beansMap = new HashMap<String, Object>();
// save query result list.
List<OrderView> views = new LinkedList<OrderView>();
// temp pager
Pager tmpPager = new Pager();
// copy pager to tmpPager
try {
BeanUtils.copyProperties(tmpPager, pager);
tmpPager.setPage(1);
} catch(InvocationTargetException e) {
e.printStackTrace();
} catch(IllegalAccessException e) {
e.printStackTrace();
}
// query order view.
tmpPager.setPage(1);
tmpPager.setPageSize(SIZE_PER_PAGE);
List<OrderView> orderViews = null;
do {
orderViews = orderViewService.find(tmpPager);
tmpPager.setPage(tmpPager.getPage() + 1);
views.addAll(orderVi