1.导出excel使用方式
/**
* 导出已生产产品到excel
* @param request
*/
@RequestMapping("exportProduct")
public void exportProduct(HttpServletRequest request, HttpServletResponse response) {
Map<String, Object> params = new HashMap<String, Object>();
try {
// 文件名
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String fileName = sdf.format(new Date()) + ".xls";
fileName = URLEncoder.encode(fileName, "UTF-8");
response.setContentType("application/x-download");
response.addHeader("Content-Disposition", "attachment;filename=" + fileName);
OutputStream out = response.getOutputStream();
// 1.创建excel文件
WritableWorkbook book = Workbook.createWorkbook(response.getOutputStream());
// 居中
WritableCellFormat wf = new WritableCellFormat();
wf.setAlignment(Alignment.CENTRE);
WritableSheet sheet = null;
SheetSettings settings = null;
// 2.创建sheet并设置冻结前两行
sheet = book.createSheet("工作表1", 0);
settings = sheet.getSettings();
settings.setVerticalFreeze(1);
// 3.添加第一行及第二行标题数据
sheet.addCell(new Label(0, 0, "序号", wf));
sheet.addCell(new Label(1, 0, "所属商品", wf));
sheet.addCell(new Label(2, 0, "货号", wf));
sheet.addCell(new Label(3, 0, "通用气种", wf));
sheet.addCell(new Label(4, 0, "产品编码", wf));
sheet.addCell(new Label(5, 0, "生产日期", wf));
sheet.addCell(new Label(6, 0, "生产操作员", wf));
sheet.addCell(new Label(7, 0, "入库日期", wf));
sheet.addCell(new Label(8, 0, "入库操作员", wf));
sheet.addCell(new Label(9, 0, "出库日期", wf));
sheet.addCell(new Label(10, 0, "出库操作员", wf));
sheet.addCell(new Label(11, 0, "经销商名称", wf));
sheet.addCell(new Label(12, 0, "仓库名称", wf));
// 4.业务数据
List<Map<String, Object>> list = productService.exportProductCenterList(params);
list = WebUtil.filterNull(list);
if (list != null && list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
Map<String,Object> map = list.get(i);
// 5.将数据添加到单元格中
sheet.addCell(new Label(0, i + 1, Integer.toString(i + 1), wf));
sheet.addCell(new Label(1, i + 1, WebUtil.getString("pb_name", map), wf));
sheet.addCell(new Label(2, i + 1, WebUtil.getString("pb_code", map), wf));
sheet.addCell(new Label(3, i + 1, WebUtil.getString("pb_qizhong", map), wf));
sheet.addCell(new Label(4, i + 1, WebUtil.getString("p_code", map), wf));
sheet.addCell(new Label(5, i + 1, WebUtil.getString("p_pdate_str", map), wf));
sheet.addCell(new Label(6, i + 1, WebUtil.getString("p_create_name", map), wf));
sheet.addCell(new Label(7, i + 1, WebUtil.getString("p_indate_str", map), wf));
sheet.addCell(new Label(8, i + 1, WebUtil.getString("p_inmanage_name", map), wf));
sheet.addCell(new Label(9, i + 1, WebUtil.getString("p_outdate_str", map), wf));
sheet.addCell(new Label(10, i + 1, WebUtil.getString("p_outmanage_name", map), wf));
sheet.addCell(new Label(11, i + 1, WebUtil.getString("shop_name", map), wf));
sheet.addCell(new Label(12, i + 1, WebUtil.getString("w_name", map), wf));
/*sheet.addCell(new Label(3, i + 1, String.format("%.2f",product_price1), wf));
sheet.addCell(new Label(4, i + 1, String.format("%.2f",product_price2), wf));*/
}
// 6.写入excel并关闭
book.write();
book.close();
out.close();
}
} catch (Exception e) {
log.error("导出到excel : " + e.getMessage());
}
}
2.所需的jar包 jxl.jar