简单记录一下,如何让导出的word显示中文名称:
String fileName = URLEncoder.encode("中文名称.doc", "UTF-8");
String outFileName = new String(fileName.getBytes("UTF-8"),"iso-8859-1");
忽略数据填充,导出:
try {
file = wordCreate(dataMap, outFileName, ftlName);
fin = new FileInputStream(file);
response.setCharacterEncoding("UTF-8");
response.setContentType("application/msword");
response.addHeader("Content-Disposition", "attachment;filename=".concat(String.valueOf(outFileName)));
out = response.getOutputStream();
byte[] buffer = new byte[1024]; // 缓冲
int bytesToRead = -1;
while ((bytesToRead = fin.read(buffer)) != -1) {
out.write(buffer, 0, bytesToRead);
}
}catch (Exception e) {
e.printStackTrace();
}finally {
if(fin != null) {
try {
fin.close();
}catch (IOException e) {
e.printStackTrace();
}
}
if(out != null) {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(file != null) {
file.delete();
}
}
如何通过freemarker导出word的链接:
https://blog.youkuaiyun.com/uaucome/article/details/103923519