2017-06-28 16 views
0

私はデータベースからデータを取得してExcelファイルとしてダウンロードするサービスコールを作成しています。私がサービスを呼び出すと、私はダウンロードするファイルを取得しますが、私はそれを開いたときに空です!私のログには何のエラーも見られません。実際には、私のロガーはすべてがうまくいくようにしています。AbstractExcelView空のドキュメントを返す

エクセルビルダー

public class PromotionExportExcelBuilder extends AbstractExcelView { 

    @SuppressWarnings("unchecked") 
    @Override 
    protected void buildExcelDocument(Map<String, Object> model, HSSFWorkbook workbook, HttpServletRequest request, 
      HttpServletResponse response) throws Exception { 
     List<PromotionRequestDTO> promoCodes = (List<PromotionRequestDTO>) model.get("promoCodes"); 

     if (CollectionUtils.isNotEmpty(promoCodes)) { 

      ServletOutputStream output = response.getOutputStream(); 

      // create style for header cells 
      CellStyle style = workbook.createCellStyle(); 
      Font font = workbook.createFont(); 
      font.setFontName("Arial"); 
      style.setFillForegroundColor(HSSFColor.BLUE.index); 
      style.setFillPattern(CellStyle.SOLID_FOREGROUND); 
      font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); 
      font.setColor(HSSFColor.WHITE.index); 
      style.setFont(font); 

      Integer totalPromos = promoCodes.size(); 
      logger.debug(totalPromos + " promo codes are being exported"); 
      Integer numberOfSheets = 1; 

      // Only want a set number of codes per sheet 
      if (totalPromos > PromotionMicroServiceBusinessConstants.PROMO_RECORDS_PER_SHEET) { 
       numberOfSheets = (totalPromos/PromotionMicroServiceBusinessConstants.PROMO_RECORDS_PER_SHEET) + 1; 
      } 

      logger.debug(numberOfSheets + " sheets will be needed"); 

      for (int sheetNumber = 1; sheetNumber <= numberOfSheets; sheetNumber++) { 
       logger.debug("Making sheet number " + sheetNumber); 
       HSSFSheet sheet = workbook.createSheet("Promotion Codes Sheet " + sheetNumber); 
       sheet.setDefaultColumnWidth(30); 

       HSSFRow header = sheet.createRow(0); 
       header.createCell(0).setCellValue("CAMPAIGN"); 
       header.getCell(0).setCellStyle(style); 
       header.createCell(1).setCellValue("PROMO CODE"); 
       header.getCell(1).setCellStyle(style); 

       int rowCount = 1; 

       /* 
        CODE TO FILL OTHER ROWS. CURRENTLY COMMENTED OUT FOR TESTING 
       */ 

       logger.debug("Sheet number " + sheetNumber + " created"); 

      } 

      workbook.write(output); // Actually write the workbook. 
     } 
    } 

} 

その後、私は、ログを見たとき、私はこれを参照してください。

28-Jun-2017 17:55:08.122 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 10904 ms 
17:55:15.031 [http-nio-8080-exec-2] DEBUG o.s.web.servlet.DispatcherServlet - DispatcherServlet with name 'promocode' processing GET request for [/promocode-0.0.1-SNAPSHOT/rest/exportPromotionCodes] 
17:55:15.038 [http-nio-8080-exec-2] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - Looking up handler method for path /exportPromotionCodes 
17:55:15.041 [http-nio-8080-exec-2] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - Returning handler method [public org.springframework.web.servlet.ModelAndView com.otc.promotion.controller.PromotionController.exportPromotionCodes(java.lang.String,java.lang.String)] 
17:55:15.041 [http-nio-8080-exec-2] DEBUG o.s.b.f.s.DefaultListableBeanFactory - Returning cached instance of singleton bean 'promotionController' 
17:55:15.046 [http-nio-8080-exec-2] DEBUG o.s.web.servlet.DispatcherServlet - Last-Modified value for [/promocode-0.0.1-SNAPSHOT/rest/exportPromotionCodes] is: -1 
17:55:15.069 [http-nio-8080-exec-2] INFO c.o.p.controller.PromotionController - Request to Export promotion codes for campaign[17] and batch [null] 
17:55:15.293 [http-nio-8080-exec-2] DEBUG o.s.b.f.s.DefaultListableBeanFactory - Returning cached instance of singleton bean 'promotionExportView' 
17:55:15.294 [http-nio-8080-exec-2] DEBUG o.s.web.servlet.DispatcherServlet - Rendering view [com.otc.promotion.views.PromotionExportExcelBuilder: name 'promotionExportView'] in DispatcherServlet with name 'promocode' 
17:55:15.414 [http-nio-8080-exec-2] DEBUG c.o.p.v.PromotionExportExcelBuilder - Created Excel Workbook from scratch 
17:55:15.425 [http-nio-8080-exec-2] DEBUG c.o.p.v.PromotionExportExcelBuilder - 30 promo codes are being exported 
17:55:15.426 [http-nio-8080-exec-2] DEBUG c.o.p.v.PromotionExportExcelBuilder - 1 sheets will be needed 
17:55:15.426 [http-nio-8080-exec-2] DEBUG c.o.p.v.PromotionExportExcelBuilder - Making sheet number 1 
17:55:15.512 [http-nio-8080-exec-2] DEBUG c.o.p.v.PromotionExportExcelBuilder - Sheet number 1 created 
17:55:15.574 [http-nio-8080-exec-2] DEBUG o.s.web.servlet.DispatcherServlet - Successfully completed request 

をそして、私はダウンロードしたファイルを開いたとき、私はこれを参照してください。

Empty Excel File

答えて

0

あなたの問題。これはREST呼び出しの問題ではありません。 Excelファイルをクリックすると、私のExcelがうんざりになり、「空の」アプリケーションが開きます。 Microsoft Excelからファイルを開くと、そのデータが表示されます。

関連する問題