title: File Format and extension of the report.xlsx don't match
body: <p><strong>The Servlet and DAO code looks like below:</strong></p>
  
  <pre><code>        @WebServlet("/ExcelExportController")
          public class ExcelExportController extends HttpServlet {
              private static final long serialVersionUID = 1L;
  
              /**
               * @see HttpServlet#HttpServlet()
               */
              public ExcelExportController() {
                  super();
                  // TODO Auto-generated constructor stub
              }
  
              /**
               * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
               *      response)
               */
              @SuppressWarnings("unchecked")
              protected void doPost(HttpServletRequest request,
                      HttpServletResponse response) throws ServletException, IOException {
                  // TODO Auto-generated method stub
                  HttpSession session = request.getSession();
                  if (session != null) {
                      FileOutputStream fileOut;
                      List&lt;LoanOffersDTO&gt; loanOffersDTOs;
                      ExcelExportDAO excelExportDAO;
                      HSSFWorkbook hssfWorkbook;
                      if (session.getAttribute("loanOffers") != null) {
                          loanOffersDTOs = (List&lt;LoanOffersDTO&gt;) session
                                  .getAttribute("loanOffers");
                          excelExportDAO = new ExcelExportDAOImpl();
                          hssfWorkbook = excelExportDAO
                                  .createLoanOffersXls(loanOffersDTOs);
                          if (hssfWorkbook != null) {
                              fileOut = new FileOutputStream("report.xlsx");
                              response.setContentType("application/application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
                              response.setHeader("Content-Disposition",
                                      "attachment; filename=report.xlsx");
                              hssfWorkbook.write(fileOut);
                              fileOut.flush();
                              fileOut.close();
                          } else {
  
                          }
                      }
                  }
  
              }
  
          }
  
  public class ExcelExportDAOImpl implements ExcelExportDAO {
  
      @Override
      public HSSFWorkbook createLoanOffersXls(List&lt;LoanOffersDTO&gt; loanOffersDTOs) throws IOException {
          HSSFWorkbook workbook = new HSSFWorkbook();
          HSSFSheet sheet = workbook.createSheet("LoanOffer");
  
          HSSFRow headRow = sheet.createRow(0);
          headRow.createCell(0).setCellValue("Bank Name");
          headRow.createCell(1).setCellValue("Offer Name");
          headRow.createCell(2).setCellValue("Loan Officer");
          headRow.createCell(3).setCellValue("Telephone");
          headRow.createCell(4).setCellValue("Email");
          headRow.createCell(5).setCellValue("Interest Rate");
          headRow.createCell(6).setCellValue("Period");
          headRow.createCell(7).setCellValue("Pre-Payment");
          headRow.createCell(8).setCellValue("Installment");
          headRow.createCell(9).setCellValue("Loan details");
  
          HSSFRow dataRow;
          int rowCount = 1;
          for (LoanOffersDTO loanOffersDTO : loanOffersDTOs) {
              dataRow = sheet.createRow(rowCount++);
              dataRow.createCell(0).setCellValue(loanOffersDTO.getBankName());
              dataRow.createCell(1).setCellValue(loanOffersDTO.getOfferName());
              dataRow.createCell(2).setCellValue(
                      loanOffersDTO.getLoanOfficerName());
              dataRow.createCell(3).setCellValue(
                      loanOffersDTO.getBankerContactNum());
              dataRow.createCell(4)
                      .setCellValue(loanOffersDTO.getBankerEmailId());
              dataRow.createCell(5).setCellValue(loanOffersDTO.getInterestRate());
              dataRow.createCell(6).setCellValue(loanOffersDTO.getDuration());
              dataRow.createCell(7).setCellValue(
                      loanOffersDTO.getPrePaymentValue());
              dataRow.createCell(8).setCellValue(loanOffersDTO.getInstallments());
              dataRow.createCell(9).setCellValue(
                      loanOffersDTO.getLoanDescription());
          }
  
          FileOutputStream fileOut  = new FileOutputStream("C:\\Users\\Test\\Desktop\\report_"+Calendar.getInstance().getTimeInMillis()+".xls");
          workbook.write(fileOut);
          fileOut.flush();
          fileOut.close();
  
          return workbook;
      }
  }
  </code></pre>
  
  <p><strong>Summary:</strong>            </p>
  
  <p>I have a jsp, when it is submitted the above servlet/controller is called.This sevelet would create the excel file and flush the Excel. Here the excel file is created using "apache poi".
         The excel gets created and flushed out, on trying to open it I'm seeing the error "File Format and extension of the report.xlsx don't match." with no data. But if I try to flush same file to some particular location, I'm receiving the file perfectly.
                  I have even tried with content type as "application/vnd.ms-excel" but issue is same.
                  Thanks</p>