春の mvc3 プロジェクトで Apache POI を使用して Excel シートを生成しています。ファイルは .xls 拡張子なしで生成されます。同じファイルの名前を手動で .xls に変更すると、データは正常に生成されます。これが私のコードのスニペットです::
@RequestMapping(value = "/download/")
public void downloadMerchantMiniStatement(final HttpServletResponse response,
@RequestParam(value = "fromDate", required = true) String fromDate,
@RequestParam(value = "toDate", required = true) String toDate,
@RequestParam(value = "status", required = false) String status
) throws IOException {
String fileName = STATEMENT_REPORT_" + getDateString(new Date()) + ".xls";
List<TransactionDTO> transactionDtos = excelService.getTransactionsForExcel(Status, DateUtil.convertStringToDate(fromDate), DateUtil.convertStringToDate(toDate));
ByteArrayOutputStream excel = getExcelStatement(transactionDtos, fromDate, toDate, status);
excel.writeTo(response.getOutputStream());
response.setContentType("application/excel");
response.setHeader("Expires:", "0");
response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
response.getOutputStream().flush();
response.getOutputStream().close();
}