导出到excel但是内容在spring mvc中出现乱码?

时间:2016-08-25 09:35:24

标签: java excel spring spring-mvc

我试图在spring mvc环境中导出到excel文件(.xls),而spring mvc版本是4.3.2.RELEASE,但是excel文件的内容不对 enter image description here 我的代码如下:

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);

}

0 个答案:

没有答案