java web exports data as code snippets in Excel format files


For your reference, the example of this article shares the specific code of java web to export data to Excel file. The specific content is as follows

1. jsp code

< input type=“button” class=“btn btn-info “onclick=“getVerExcel();” value=” export as Excel file ”/ >

2. js code

function getVerExcel() {
  window.location.href = '/pms/jsp/version/getPrdVerListExcel?page='
      + $("#getPage").html() + '&key=' + $("#select").val();
}

3. java code

  /**
   *
   * Purpose : Export the product version list as Excel file
   * @param req
   *       request
   * @param resp
   *       The reply
   * @param page
   *       The current number of pages
   * @param key
   *       Query conditions
   * @return
   */
  @RequestMapping("getPrdVerListExcel")
  public void getExcel(HttpServletRequest req, HttpServletResponse resp, Integer page, String key) {
    //  Setup file mime type
    resp.setContentType("application/vnd.ms-excel");

    //  Get all the data
    List<Version> verList = prdVersionSer.getAllPrdVersion(key);
    //  If there is no data, the user is prompted
    if (verList.size() == 0) {
      req.setAttribute("getFileMsg", " No qualified information! ");
      req.setAttribute("select", key);
      try {
        req.getRequestDispatcher("/jsp/version/ver_list.jsp").forward(req, resp);
      } catch (Exception e) {
        e.printStackTrace();
      }
    } else {
      //  Stores the encoded file name
      String name = "name";
      //  Name of storage file
      String n = "";
      if (key != "") {
        n = verList.get(0).getPrdName() + " Version list of ";
      } else {
        n = " Product version list ";
      }
      try {
        name = URLEncoder.encode(n, "utf-8");
      } catch (UnsupportedEncodingException e1) {
        e1.printStackTrace();
      }
      resp.setHeader("content-disposition",
          "attachment;filename=" + name + ".xls;filename*=utf-8''" + name + ".xls");

      System.out.println("key:" + key);

      //  from session Remove the saveExcelMsg attribute
      req.getSession().removeAttribute("saveExcelMsg");
      //  define 1 An output stream
      ServletOutputStream sos = null;

      //  create 1 A workbook
      HSSFWorkbook wb = new HSSFWorkbook();
      //  create 1 A worksheet
      HSSFSheet sheet = null;
      if (key != "") {
        sheet = wb.createSheet(verList.get(0).getPrdName() + " Version information ");
      } else {
        sheet = wb.createSheet(" Product version information ");
      }
      //  Returns a data format object
      //  Gets the number of the corresponding date format from the format object, and if the format does not exist, the method generates a new number for it
      HSSFDataFormat format = wb.createDataFormat();
      short dfNum = format.getFormat("yyyy-mm-dd");
      //  Creating a style object
      CellStyle style = wb.createCellStyle();
      //  Format the data
      style.setDataFormat(dfNum);
      //  Create the first 1 Row (table header)
      HSSFRow row = sheet.createRow(0);
      HSSFCell cell = row.createCell(0, HSSFCell.CELL_TYPE_STRING);
      if (key != "") {
        cell.setCellValue(verList.get(0).getPrdName() + " Product version list ");
      } else {
        cell.setCellValue(" Product version list ");
      }

      //  Create the first 2 Line (header)
      row = sheet.createRow(1);
      cell = row.createCell(0, HSSFCell.CELL_TYPE_STRING);
      cell.setCellValue(" The serial number ");

      cell = row.createCell(1, HSSFCell.CELL_TYPE_STRING);
      cell.setCellValue(" The product name ");

      cell = row.createCell(2, HSSFCell.CELL_TYPE_STRING);
      cell.setCellValue(" The version number ");

      cell = row.createCell(3, HSSFCell.CELL_TYPE_STRING);
      cell.setCellValue(" The release date ");

      cell = row.createCell(4, HSSFCell.CELL_TYPE_STRING);
      cell.setCellValue(" Version type ");

      cell = row.createCell(5, HSSFCell.CELL_TYPE_STRING);
      cell.setCellValue(" Version described ");

      int num = 1;
      //  Traverse the output verList , and store it Excel In the
      for (int i = 0; i < verList.size(); i++) {
        row = sheet.createRow(i + 2);
        //  Write the serial number
        cell = row.createCell(0, HSSFCell.CELL_TYPE_NUMERIC);
        cell.setCellValue(num);
        num++;
        //  Write the product name
        cell = row.createCell(1, HSSFCell.CELL_TYPE_STRING);
        cell.setCellValue(verList.get(i).getPrdName());
        //  Write version number
        cell = row.createCell(2, HSSFCell.CELL_TYPE_STRING);
        cell.setCellValue(verList.get(i).getVerNo());

        //  Write the release date ( Date format does the processing )
        cell = row.createCell(3, HSSFCell.CELL_TYPE_STRING);
        //  Apply the style to the cell
        cell.setCellStyle(style);
        cell.setCellValue(verList.get(i).getVerDate());

        //  Write version type
        cell = row.createCell(4, HSSFCell.CELL_TYPE_STRING);
        cell.setCellValue(verList.get(i).getVerType());

        //  Write version description
        cell = row.createCell(5, HSSFCell.CELL_TYPE_STRING);
        cell.setCellValue(verList.get(i).getVerDesc());
      }
      try {
        //  Save to a file
        sos = resp.getOutputStream();
        wb.write(sos);
      } catch (Exception e) {
        e.printStackTrace();
      } finally {
        if (sos != null) {
          try {
            sos.close();
          } catch (IOException e) {
            e.printStackTrace();
          }
        }
      }
    }
  }