0
点赞
收藏
分享

微信扫一扫

java 文件导出xls格式

龙驹书房 2022-03-15 阅读 78
@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;
}
举报

相关推荐

0 条评论