富文本编辑的内容导出为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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.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
MySQL学习笔记(一)
2019-04-29
你想学的都在这里!互联网寒冬公司倒闭后,架构师必备技能
2019-04-29
你想学的都在这里!如何在Android-Studio下进行NDK开发,吐血整理
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架构师面试题解析大全》,带着问题深入学习Handler,经典好文
2019-04-29
查漏补缺!2021大厂Android面试经验,算法太TM重要了
2019-04-29