我试图在spring mvc环境中导出到excel文件(.xls),而spring mvc版本是4.3.2.RELEASE,但是excel文件的内容不对
我的代码如下:
public class ViewExcel extends AbstractXlsView {
@Override
protected void buildExcelDocument(Map<String, Object> model, Workbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception {
List<BandedWordDo> bandedWordDos = (List<BandedWordDo>) model.get("list");
//创建工作薄
Sheet sheet = workbook.createSheet("bannded word");
CellStyle style = workbook.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
for (int i = 0; i < bandedWordDos.size(); i++) {
Row row = sheet.createRow(i);
// 第四步,创建单元格,并设置值
String word = bandedWordDos.get(i).getWord();
row.createCell(0).setCellValue(word);
}
//设置头信息
String agent = request.getHeader("USER-AGENT").toLowerCase();
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
final String fileName = "bandedWord";
String codedFileName = java.net.URLEncoder.encode(fileName, "UTF-8");
if (agent.contains("firefox")) {
response.setCharacterEncoding("utf-8");
response.setHeader("content-disposition",
"attachment;filename=" + new String(fileName.getBytes(),
Charset.forName("UTF-8")) + ".xls");
} else {
response.setHeader("content-disposition",
"attachment;filename=" + codedFileName + ".xls");
}
}
@RequestMapping(value = "/word/export", method = RequestMethod.GET)
@ResponseBody
public ModelAndView exportBanded(ModelMap modelMap) throws IOException {
List<BandedWordDo> bandedWordDos = bandedService.getBandedWordList(Constants.NORMAL);
modelMap.put("list", bandedWordDos);
return new ModelAndView(new ViewExcel(), modelMap);
}