package com.beilei.controller.applyprocess;


import com.beilei.entity.DriverApplyProcess;
import com.beilei.util.WebUtils;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import org.apache.log4j.Logger;
import com.beilei.utils.DriversellTimeUtils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.util.Date;
import java.util.List;

/**
* Created bl lx on 2016/7/25.
*/
public class ApplyProcessExcelUtil {

private static final Logger logger = Logger.getLogger(ApplyProcessExcelUtil.class);

public static void exportExcel(HttpServletRequest request, HttpServletResponse response, List<DriverApplyProcess> driverApplyProcess) throws Exception {
String filePath = request.getServletContext().getRealPath("/");
File file = new File(filePath + "[" + new Date().getTime() + "]" + ".xls");
WritableWorkbook book = null;
book = Workbook.createWorkbook(file);
WritableSheet sheet = book.createSheet("第一页", 0);

// 设置样式,第一行
WritableFont wfc1 = new WritableFont(WritableFont.ARIAL, 13, WritableFont.NO_BOLD, false);
jxl.write.WritableCellFormat wcfFC1 = new jxl.write.WritableCellFormat(wfc1);
wcfFC1.setAlignment(jxl.format.Alignment.CENTRE);
wcfFC1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);

// 设置样式,第二行
WritableFont wfc2 = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false);
jxl.write.WritableCellFormat wcfFC2 = new jxl.write.WritableCellFormat(wfc2);
wcfFC2.setAlignment(jxl.format.Alignment.CENTRE);
wcfFC2.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);

String title = "城市,所属,id,身份证姓名,身份证号码,手机号码,提交时间,行为,状态";

String[] splitsTitle = title.split(",");
int length = splitsTitle.length;
for (int i = 0; i < length; i++) {
sheet.addCell(new Label(i, 0, splitsTitle[i], wcfFC2));
sheet.setColumnView(i, 15);
}

for (int c = 0; c < driverApplyProcess.size(); c++) {
DriverApplyProcess o = driverApplyProcess.get(c);
int rowNum = c + 1;
int colNum = 0;
sheet.addCell(new Label(colNum++, rowNum, o.getDelivererDto().getCityName() == null ? "" : o.getDelivererDto().getCityName().toString(), wcfFC2));
sheet.addCell(new Label(colNum++, rowNum, o.getDelivererDto().getStationRegionName() == null ? "" : o.getDelivererDto().getStationRegionName(), wcfFC2));
sheet.addCell(new Label(colNum++, rowNum, o.getDelivererDto().getBdId() == null ? "" : o.getDelivererDto().getBdId().toString(), wcfFC2));
sheet.addCell(new Label(colNum++, rowNum, o.getDelivererDto().getName() == null ? "" : o.getDelivererDto().getName(), wcfFC2));
sheet.addCell(new Label(colNum++, rowNum, o.getDelivererDto().getIdentifyNumber() == null ? "" : o.getDelivererDto().getIdentifyNumber(), wcfFC2));
sheet.addCell(new Label(colNum++, rowNum, o.getDelivererDto().getMobile()== null ? "" : o.getDelivererDto().getMobile(), wcfFC2));

sheet.addCell(new Label(colNum++, rowNum, o.getcT() == null ? "" : DriversellTimeUtils.unixTimestampToDateString(o.getcT(),"yyyy/MM/dd"), wcfFC2));
sheet.addCell(new Label(colNum++, rowNum, o.getType() == null ? "" : o.getType().toString(), wcfFC2));
sheet.addCell(new Label(colNum++, rowNum, o.getStatusName() == null ? "" : o.getStatusName().toString(), wcfFC2));
}
book.write();
book.close();
WebUtils.fileToResponse(response, file);
}

}


调用
Page<DriverApplyProcess> page = driverApplyProcessService.query(applyProcess, 1, Integer
.MAX_VALUE).getBody();

// 输出excel
ApplyProcessExcelUtil.exportExcel(request, response, page.getItems());