@RequestMapping("download") public void exportWord( HttpServletRequest request, HttpServletResponse response) throws Exception { User user = AppContext.getLoginUser(); Student student = studentSvc.findByUserId(user.getId()); try { //word內容 String content="<html><body></body></html>"; byte b[] = content.getBytes("utf-8"); //這裏是必需要設置編碼的,否則導出中文就會亂碼。 ByteArrayInputStream bais = new ByteArrayInputStream(b);//將字節數組包裝到流中 /* * 關鍵地方 * 生成word格式 */ POIFSFileSystem poifs = new POIFSFileSystem(); DirectoryEntry directory = poifs.getRoot(); DocumentEntry documentEntry = directory.createDocument("WordDocument", bais); //輸出文件 String fileName="實習考覈鑑定表"; request.setCharacterEncoding("utf-8"); response.setContentType("application/msword");//導出word格式 response.addHeader("Content-Disposition", "attachment;filename=" + new String( (fileName + ".doc").getBytes(), "iso-8859-1")); OutputStream ostream = response.getOutputStream(); poifs.writeFilesystem(ostream); bais.close(); ostream.close(); }catch(Exception e){ AppUtils.logError("導出出錯:%s", e.getMessage()); } }