您的位置:首页 > 其它

使用jxl输出excel表格

2016-04-28 16:16 513 查看
@RequestMapping(value = "/checkAccountExport")

public void checkAccountExport(final ModelMap model,

@RequestParam Map<String, String> params,

HttpServletResponse response, HttpServletRequest request) {

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");

int random = (int) (Math.random() * 10000);

String fileName = "check_"+sdf.format(new Date())+"_"+random+".xls";

OutputStream os = null;

try {

request.setCharacterEncoding("UTF-8");

os = response.getOutputStream(); // 取得输出流

response.reset(); // 清空输出流

response.setHeader("Content-disposition", "attachment;filename="

+ new String(fileName.getBytes("GBK"), "ISO8859-1"));

response.setContentType("application/msexcel;charset=UTF-8");// 定义输出类型

expordExcel(os, params, fileName);

} catch (IOException e) {

e.printStackTrace();

} catch (Exception e) {

e.printStackTrace();

} finally {

if(os != null){

try {

os.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

//生成一个表格

/**

* 导出Excel报表

*

* */

private void expordExcel(OutputStream os, Map<String, String> params, String fileName)

throws Exception {

if(params.get("createTimeBegin") == null && params.get("createTimeEnd")==null){

Date date = new Date();

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

String transTime = sdf.format(date);

String transTimeBegin = transTime + " 00:00";

String transTimeEnd = transTime + " 23:59";

params.put("createTimeBegin", transTimeBegin);

params.put("createTimeEnd", transTimeEnd);

}

List<Map<String, Object>> list = checkAccountBatchService.queryCheckAccountBatchs(params);

int row = 2; // 从第三行开始写

int col = 0; // 从第一列开始写

if (params.get("createTimeBegin") == null && params.get("createTimeEnd") == null) {

Date date = new Date();

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

String transTime = sdf.format(date);

String transTimeBegin = transTime + " 00:00";

String transTimeEnd = transTime + " 23:59";

params.put("createTimeBegin", transTimeBegin);

params.put("createTimeEnd", transTimeEnd);

}

Workbook wb = Workbook.getWorkbook(this.getClass().getResourceAsStream("/template/CHECK_MSG.xls"));

WritableWorkbook wwb = Workbook.createWorkbook(os, wb);

WritableSheet ws = wwb.getSheet(0);

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

SimpleDateFormat checkDateFormat = new SimpleDateFormat("yyyy-MM-dd");

NumberFormat nf = new NumberFormat("0.00");

WritableCellFormat numFormat = new WritableCellFormat(nf);

numFormat.setAlignment(Alignment.RIGHT);

for (int i = 0; i < list.size(); i++) {

ws.addCell(new Label(col++, row, StringUtil.filterNull(list.get(i).get("check_batch_no"))));

ws.addCell(new Label(col++, row, StringUtil.filterNull(list.get(i).get("acq_enname"))));

ws.addCell(new Label(col++, row, StringUtil.filterNull(list.get(i).get("acq_cnname"))));

ws.addCell(new jxl.write.Number(col++, row,Double.valueOf(StringUtil.getDoubleValue(list.get(i).get("acq_total_amount"))) ,numFormat));

ws.addCell(new jxl.write.Number(col++, row, Double.valueOf(StringUtil.getDoubleValue(list.get(i).get("acq_total_items")))));

ws.addCell(new jxl.write.Number(col++, row, Double.valueOf(StringUtil.getDoubleValue(list.get(i).get("acq_total_success_items")))));

ws.addCell(new jxl.write.Number(col++, row, Double.valueOf(StringUtil.getDoubleValue(list.get(i).get("acq_total_failed_items")))));

ws.addCell(new jxl.write.Number(col++, row, Double.valueOf(StringUtil.getFloatValue(list.get(i).get("total_amount"))),numFormat));

ws.addCell(new jxl.write.Number(col++, row, Double.valueOf(StringUtil.getDoubleValue(list.get(i).get("total_items")))));

ws.addCell(new jxl.write.Number(col++, row, Double.valueOf(StringUtil.getDoubleValue(list.get(i).get("total_success_items")))));

ws.addCell(new jxl.write.Number(col++, row, Double.valueOf(StringUtil.getDoubleValue(list.get(i).get("total_failed_items")))));

// ws.addCell(new jxl.write.Number(col++, row, Double.valueOf(StringUtil.filterNull(list.get(i).get("total_revoked_items")))));

ws.addCell(new Label(col++, row, StringUtil.filterNull(list.get(i).get("total_revoked_items"))));

ws.addCell(new Label(col++, row, translateCheckResult(list.get(i).get("check_result"))));

ws.addCell(new Label(col++, row, list.get(i).get("check_file_date")==null?"":checkDateFormat.format(list.get(i).get("check_file_date"))));

ws.addCell(new Label(col++, row, list.get(i).get("check_time")==null?"":dateFormat.format(list.get(i).get("check_time"))));

ws.addCell(new Label(col++, row, StringUtil.filterNull(list.get(i).get("check_file_name"))));

ws.addCell(new Label(col++, row, StringUtil.filterNull(list.get(i).get("operator"))));

ws.addCell(new Label(col++, row, list.get(i).get("create_time")==null?"":dateFormat.format(list.get(i).get("create_time"))));

row++;

col = 0;

}

wwb.write();

wwb.close();

wb.close();

os.close();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: