@RequestMapping(value = "/print") public String print(){ try { response.setCharacterEncoding("utf-8"); response.setContentType("text/html; charset=utf-8"); // 设置导出的文件名称 String BBMC = "月报管理"; //获取 项目 template 目录下 模板sxybgl.xlsx 文件的路径 String filePath = request.getSession().getServletContext().getRealPath("template") + File.separatorChar + "sxybgl.xlsx"; ExcelServicePrinter printObject = ExcelServicePrinter.openTemplate(filePath); //查询SQL获取要导出的值 String sql ="select * from daul"; List<Map> lstData = Context.getDao().execSqlQueryToMap(sql); if (lstData != null && lstData.size() > 0) { // 如:第一行是表名,第二行是标题,第三行是放导出的内容,那么 int startRow=3; int startRow = 2;//从第二行开始 for (int i = 0; i < lstData.size(); i++) { Map data = lstData.get(i); String xqmc = data.get("xqmc") == null ? "" : data.get("xqmc").toString(); String sxjhmc = data.get("sxjhmc") == null ? "" : data.get("sxjhmc").toString(); String xh = data.get("xh") == null ? "" : data.get("xh").toString(); String xm = data.get("xm") == null ? "" : data.get("xm").toString(); String bj = data.get("bj") == null ? "" : data.get("bj").toString(); String dwmc = data.get("dwmc") == null ? "" : data.get("dwmc").toString(); String qymc = data.get("qymc") == null ? "" : data.get("qymc").toString(); String sxgw = data.get("sxgw") == null ? "" : data.get("sxgw").toString(); String qdddmc = data.get("xnzdjs") == null ? "" : data.get("xnzdjs").toString(); startRow++; // 从第二行开始 2行复制,到第2行结束。把复制的行放到 startRow++ 行 printObject.copyRange(2, 2, startRow); printObject.printCellText(startRow, 1, (i+1));//序号 printObject.printCellText(startRow + 1, 1, xqmc); printObject.printCellText(startRow + 1, 2, sxjhmc); printObject.printCellText(startRow + 1, 3, xh); printObject.printCellText(startRow + 1, 4, xm); printObject.printCellText(startRow + 1, 5, bj); printObject.printCellText(startRow + 1, 6, dwmc); printObject.printCellText(startRow + 1, 7, qymc); printObject.printCellText(startRow + 1, 8, sxgw); printObject.printCellText(startRow + 1, 9, qdddmc); startRow++; } printObject.delRows(2, 2 );//删除模版 } else { this.writeJsMessage(response, "alert('无导出数据')"); return null; } //输出 OutputStream output = null; try { response.setContentType("application/x-msdownload"); String filename = new String(BBMC.getBytes("GBK"), "iso8859-1"); response.addHeader("Content-Disposition", "attachment;filename=" + filename + ".xls"); output = response.getOutputStream(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } printObject.write(output); try { output.flush(); output.close(); } catch (Exception e) { e.printStackTrace(); } } catch (Exception e) { log.error(e.getMessage(), e); this.writeJsMessage(response, "alert('导出失败!');"); } return null; }