富文本编辑的内容导出为word
发布日期:2021-06-28 18:30:47 浏览次数:2 分类:技术文章

本文共 2931 字,大约阅读时间需要 9 分钟。

1、集成富文本编辑器,博主,采用ckeditor

引入相关的jar包

cn.afterturn
easypoi-base
3.2.0
cn.afterturn
easypoi-annotation
3.2.0

2、封装工具类

package top.cfl.cflwork.util.excel;import cn.afterturn.easypoi.word.WordExportUtil;import cn.hutool.core.lang.Assert;import org.apache.poi.poifs.filesystem.DirectoryEntry;import org.apache.poi.poifs.filesystem.DocumentEntry;import org.apache.poi.poifs.filesystem.POIFSFileSystem;import org.apache.poi.xwpf.usermodel.XWPFDocument;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.ByteArrayInputStream;import java.io.File;import java.io.FileOutputStream;import java.io.OutputStream;import java.net.URLEncoder;import java.util.Map;public class ExcelUtil {    /**     * 导出word方法     * @param request     * @param response     * @param html     * @param title     */    public static void exportWords(HttpServletRequest request, HttpServletResponse response, String html, String title) {        ServletOutputStream ostream = null;        POIFSFileSystem poifs = null;        ByteArrayInputStream bais = null;        try {            String content = html;            //设置编码            byte b[] = content.getBytes("utf-8");            bais = new ByteArrayInputStream(b);            poifs = new POIFSFileSystem();            DirectoryEntry directory = poifs.getRoot();            DocumentEntry documentEntry = directory.createDocument("WordDocument", bais);            request.setCharacterEncoding("utf-8");            response.setContentType("application/msword");            response.addHeader("Content-Disposition", "attachment;filename=" +                    new String(title.getBytes("GB2312"), "iso8859-1") + ".doc");            ostream = response.getOutputStream();            poifs.writeFilesystem(ostream);        } catch (Exception e) {            e.printStackTrace();        } finally {            try {                if (bais != null) {                    bais.close();                }                if (ostream != null) {                    ostream.close();                }                if (poifs != null) {                    poifs.close();                }            } catch (Exception ex) {                ex.printStackTrace();            }        }    }}

3、调用工具类

@GetMapping("/exportItem/{id}")    public void export(HttpServletRequest request, HttpServletResponse response, @PathVariable("id") String id) {        SysNotice sysNotice = sysNoticeService.findSysNoticeById(id);        exportWords(request,response,sysNotice.getContent(),sysNotice.getTitle());//        exportWord("word/message.docx",  "通知公告.docx", convertBeanToMap(sysNotice), request, response);    }

4、导出结果

5、总结,导出的内容,跟编辑器一样,只是导出后,打开是web板式。需要切换至写作板式。

转载地址:https://blog.csdn.net/xljx_1/article/details/102753617 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:ElementUI 树形结构默认展示某个节点
下一篇:SpringBoot 集成webSocket 打成jar包ba

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月25日 16时32分43秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

Java之静态变量和静态方法那些事 2019-04-29
慕课网学习之Java集合框架 2019-04-29
笔试之java总结 2019-04-29
关于jQuery的一些小方法 2019-04-29
RequestMapping用法的一点理解 2019-04-29
@SelectProvider,@Select和xml用法的一点理解 2019-04-29
Maven学习笔记 2019-04-29
The request sent by the client was syntactically incorrect. 2019-04-29
MySQL学习笔记(一) 2019-04-29
你想学的都在这里!互联网寒冬公司倒闭后,架构师必备技能 2019-04-29
你想学的都在这里!如何在Android-Studio下进行NDK开发,吐血整理 2019-04-29
你真的了解Android系统启动流程吗?没想到一个Handler还有中高级几种问法,成功入职阿里 2019-04-29
你真的了解Android系统启动流程吗?腾讯、字节跳动面经已发,移动架构师成长路线 2019-04-29
保洁阿姨看完都会了!整理几个重要的Android知识,大厂面试题汇总 2019-04-29
做了5年Android,2021大厂Android面试经验,成功拿下大厂offer 2019-04-29
最强Android教程!360°深入了解Flutter,附答案 2019-04-29
最强整理:字节跳动Android研发岗这些知识点内部泄露出来了,学习路线+知识点梳理 2019-04-29
最新Android开发进阶!Android开发大佬的百度,美团,快手等大厂Offer收割之旅,顺利通过阿里Android岗面试 2019-04-29
最新整理《Android架构师面试题解析大全》,带着问题深入学习Handler,经典好文 2019-04-29
查漏补缺!2021大厂Android面试经验,算法太TM重要了 2019-04-29