1

私はSpringチュートリアルでmkyong Jexcelをフォローしていますが、すべてがうまく見えます.Excelファイルを作成してシートを書き込むことができます.1つのことを除いて、Excelファイル名を変更できませんか? コントローラーへのリンクと同じファイル名が表示されます。

ここに例があります

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

常に「report.html.xls」という Excel ファイル名が作成されます。ファイル名を変更する方法を知っている人はいますか??

これは私のコントローラーです

@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++;
       }
   }

前もってありがとう、マート

4

1 に答える 1

2

次の行をコントローラーに追加します。

response.setHeader("Content-Disposition", "attachment; filename=\"whatEver.xls\"");
于 2011-10-23T12:17:41.893 に答える