Как установить имя Jexcel в Spring mvc? - PullRequest
1 голос
/ 23 октября 2011

Я подписан на mkyong Учебник Jexcel with Spring, и все выглядит отлично. Он может создавать файлы Excel и записывать листы, кроме одного: я не могу изменить свое имя файла Excel?Он будет отображать имя файла так же, как моя ссылка на контроллер.

Вот пример

<li><h3><a href="report.html">Jexcel Showcase</a></h3></li>

Он всегда будет создавать имя файла Excel "report.html.xls",Кто-нибудь знает, как изменить имя файла ??

Это мой контроллер

@RequestMapping(method=RequestMethod.POST)
protected ModelAndView handleRequestInternal(HttpServletRequest request,
        HttpServletResponse response) throws Exception {
        //dummy data
        revenueData.put("Jan-2010", "$100,000,000");
        revenueData.put("Feb-2010", "$110,000,000");
        revenueData.put("Mar-2010", "$130,000,000");
        revenueData.put("Apr-2010", "$140,000,000");
        revenueData.put("May-2010", "$200,000,000");
    return new ModelAndView("jexcelSuccess","revenueData",revenueData);
}

и метод buildExcelDocument

protected void buildExcelDocument(Map model, WritableWorkbook workbook,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {

   Map<String,String> revenueData = (Map<String,String>) model.get("revenueData");
   WritableSheet sheet = workbook.createSheet("Revenue Report", 0);
   WritableSheet sheet2 = workbook.createSheet("Test Report", 1);
   WritableSheet sheet3 = workbook.createSheet("Hello Report", 2);

       sheet.addCell(new Label(0, 0, "Month"));
       sheet.addCell(new Label(1, 0, "Revenue"));

       int rowNum = 1;
   for (Map.Entry<String, String> entry : revenueData.entrySet()) {
    //create the row data
    sheet.addCell(new Label(0, rowNum, entry.getKey()));
        sheet.addCell(new Label(1, rowNum, entry.getValue()));
        rowNum++;
       }
   }

Заранее спасибо, март

1 Ответ

2 голосов
/ 23 октября 2011

Добавьте эту строку в контроллер:

response.setHeader("Content-Disposition", "attachment; filename=\"whatEver.xls\"");
...