2016-03-11 3 views
0

В настоящее время я использую Apache POI. Для разработки моего приложения я использовал метод, предложенный в большинстве учебников.Загрузить файл с Apache POI

public void generateExcel() { 

    HSSFWorkbook wb = new HSSFWorkbook(); 
    HSSFSheet sheet = wb.createSheet("ma feuille"); 

    HSSFRow row = sheet.createRow(0); 
    HSSFCell cell = row.createCell((short)0); 
    cell.setCellValue(10); 

    row.createCell((short)1).setCellValue(20); 

    FileOutputStream fileOut; 
    try { 
     fileOut = new FileOutputStream("monfichier.xls"); 
     wb.write(fileOut); 
     fileOut.close(); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

Но для дальнейшей разработки мне нужно иметь возможность загрузить файл, а не только для создания в каталоге. Я смотрел небольшой HttpServletRequest, но я полностью потерялся.

Спасибо заранее!

+0

Выполняется ли этот код на стороне сервера. Вы хотите загрузить xls с клиентской стороны? –

+3

Рассмотрите возможность использования [сервлета загрузки файла] (http://stackoverflow.com/q/1442893/1606632). –

+0

Да, код выполняется на стороне сервера, клиенту нужно нажать кнопку, и я бы хотел, чтобы он при загрузке приложения начал загружать файл, так как файл actuellementle xls - это просто файл в каталоге. fileOut = new FileOutputStream ("monfichier.xls"); –

ответ

0

Вам нужно создать какую-то конечную точку для вызова i.e конечной точки контроллера Spring. Вы должны называть эту функцию:

public void createExcelFile(final HttpServletResponse response) { 
    XSSFWorkbook xssfWorkbook = null; 
    try { 
     response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); 
     response.setHeader("Content-Disposition", "attachment; filename=" file.xlsx"); 

     xssfWorkbook = new XSSFWorkbook(); 
     final XSSFSheet sheet = xssfWorkbook.createSheet("sheet1"); 

     writeExcelOutputData(//WRITE DATA TO FILE/SHEET/CELLS); 

     xssfWorkbook.write(response.getOutputStream()); 
     xssfWorkbook.close(); 
    } catch (final Exception e) { 
     LOGGER.error("File not created for download")); 
    } 
}