springboot项目实现POI将富文本导出word

时间:2021-7-3 作者:qvyue

1.引入依赖

        org.apache.poipoi3.14

2.实现层代码

    @GetMapping("downloadWord")
    public void downloadWord(HttpServletRequest request,HttpServletResponse response){
        try {
            // 标题
            String title = "测试标题";
            // 内容
            String text = "测试内容";
            //富文本内容
            String content="" +
                    "

" + title + "

" + text + ""; //这里是必须要设置编码的,不然导出中文就会乱码。 byte b[] = content.getBytes("GBK"); //将字节数组包装到流中 ByteArrayInputStream bais = new ByteArrayInputStream(b); /** * 关键地方 * 生成word格式 */ POIFSFileSystem poifs = new POIFSFileSystem(); DirectoryEntry directory = poifs.getRoot(); directory.createDocument("WordDocument", bais); /** * 方式一:创建文件并将流输出到文件中 */ FileCopyUtils.copy(poifs.createDocumentInputStream("WordDocument"),new FileOutputStream("d:/test.doc")); /** * 方式二:直接输出流文件下载 */ request.setCharacterEncoding("utf-8"); response.setContentType("application/msword");//导出word格式 response.addHeader("Content-Disposition", "attachment;filename=" + new String(title.getBytes("GB2312"),"iso8859-1") + ".doc"); ServletOutputStream ostream = response.getOutputStream(); poifs.writeFilesystem(ostream); bais.close(); ostream.close(); poifs.close(); }catch(Exception e){ e.printStackTrace(); } }
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。