一、需求:

当创建使用富文本编辑器,操作完的数据,传输到后台都是带有html标签的。
如:<h1>标题头</h1><h2>第二个标题</h2><a href="www.baidu.com">百度搜索</a>

如果我们想把富文本数据转换为Word内容,并下载下来。

二、解决方案

Word是完全支持html标签的,但是我们获取到的富文本内容并不是完整的html代码,所有我们需要先补全html标签,然后转码,然后输出。

上代码!!!

1.先去页面创建一个图片按钮:

<div onclick="ExceltoWord()"> <img src="xxxxxx.jpg"></div>
<form style="display:none" name="frmExcel"  id="frmExcel" action="" enctype="multipart/form-data" method="post"></form>

2.然后编写JS请求:

function ExceltoWord() {document.getElementById("frmExcel").action = '/fileUpdate/download';  //拼接接口地址  document.getElementById("frmExcel").submit();
}

3.编写后台代码:

import org.apache.poi.poifs.filesystem.DirectoryEntry;
import org.apache.poi.poifs.filesystem.DocumentEntry;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayInputStream;@Controller
@RequestMapping("fileUpdate")
public class SampleLibController extends BaseController {@ResponseBody@RequestMapping(value = "download")public int download(HttpServletResponse response, HttpServletRequest request)throws Exception {String content = "<h1>标题头</h1><h2>第二个标题</h2><a href=\"www.baidu.com\">百度搜索</a>";StringBuffer sbf = new StringBuffer();sbf.append("<html><body>");sbf.append(content);sbf.append("</body></html");exportWord(request,response,String.valueOf(sbf),"word1");return 1;}/*** * @param request* @param response* @param content  富文本内容* @param fileName 生成word名字* @throws Exception*/public static void exportWord(HttpServletRequest request, HttpServletResponse response, String content, String fileName) throws Exception {byte b[] = content.getBytes("GBK"); //这里是必须要设置编码的,不然导出中文就会乱码。ByteArrayInputStream bais = new ByteArrayInputStream(b);//将字节数组包装到流中POIFSFileSystem poifs = new POIFSFileSystem();DirectoryEntry directory = poifs.getRoot();DocumentEntry documentEntry = directory.createDocument("WordDocument", bais); //该步骤不可省略,否则会出现乱码。//输出文件request.setCharacterEncoding("utf-8");response.setContentType("application/msword");//导出word格式response.addHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes("GB2312"),"iso8859-1") + ".doc");ServletOutputStream ostream = response.getOutputStream();poifs.writeFilesystem(ostream);bais.close();ostream.close();poifs.close();}}

4.看结果:

Java 富文本内容转化word导出相关推荐

  1. java 富文本html 转 word(带图片处理

    1.配置依赖 <dependency><groupId>e-iceblue</groupId><artifactId>spire.doc.free< ...

  2. java freemarker 图片_java通过freemarker导出包含富文本图片的word文档

    废话不多说,进入正题! 本文重点在于:对富文本图片的导出(基础的freemarker+word模板导出这里不做详细解说哈) (ps:大神的东西太深奥~~懵逼了 一周才搞定,为了方便后来在更加简单,清晰 ...

  3. vuejs项目纯js导出word、在线下载富文本内容或者网页另存为word文件

    所有前端导入导出方法集合: 前端必备技能知识:JS导出Blob流文件为Excel表格.Vue.js使用Blob的方式实现excel表格的下载(流文件下载)_勤动手多动脑少说多做厚积薄发-CSDN博客_ ...

  4. Java实现多文件上传下载,kindeditor富文本保存为word文件,文件列表分页显示

    介绍 SpringBoot+Thymeleaf+Mybaits项目部分功能, 实现文件的多文件上传和下载,以及将kindeditor富文本内容保存为.doc文件 文件上传/创建后以列表形式显示,并且可 ...

  5. 富文本转换字符串 php,php 如何将一个富文本字符串生成word文档?

    问题描述 我现在有一个富文本字符串, 比如$str=" qqq啊啊啊啊啊百度网址 ": 中间我省去了大量的图片base64的编码. 问题出现的环境背景及自己尝试过哪些方法 相关代码 ...

  6. js获取富文本内容长度_js富文本实现

    转载来源:https://www.cnblogs.com/xiaohuochai/p/5884206.html 一说起富文本,人们第一印象就是像使用word一样,在网页上操作文档.实际上差不多就是这样 ...

  7. uni怎么使用原生html标签,uni-app如何完美解析富文本内容

    在uni-app中有 rich-text 标签是自带解析富文本内容的,但是不是很完美,怎么说呢?比如富文本的代码块.图片宽度等都是无法控制的,那么现在就利用插件来解析,这个解析插件小编是利用图片.ht ...

  8. 提取富文本内容(包括去除图片)

    //截取富文本内容 function getSimpleText(html){ var re1 = new RegExp("<.+?>","g"); ...

  9. 跨平台应用开发进阶(五十一):HTML5(富文本内容)连续数字、字母不自动换行问题分析及解决

    文章目录 一.前言 二.问题分析 三.解决方法 3.1 对 input 标签设置 3.2 对 input 标签内的 p 标签设置 四.延伸阅读 顶部状态栏穿透问题 五.拓展阅读 一.前言 项目开发过程 ...

最新文章

  1. error C2065: “IDD_DIALOG1”: 未声明的标识符
  2. 基于视觉Transformer的目标检测
  3. 【收藏】wiztree大文件查找软件
  4. Chapter 1 First Sight——33
  5. 【软件开发底层知识修炼】八 Binutils辅助工具之- objdump工具 与 size,strings工具
  6. Wince6 Eboot中加入开机画面
  7. 慧材技术中核普达测量与测绘系统介绍(一)
  8. 腾讯联手华为!将让腾讯游戏越跑越快
  9. Java中ArrayList、Integer[]和int[]的相互转换
  10. 拿走不谢:一份历经线上考验的大规模系统的消息队列技术方案!
  11. shell脚本中的逻辑判断、文件目录属性判断、if特殊用法、case判断
  12. Spark入门到精通
  13. javascript监听页面刷新事件
  14. 体细胞选择区分癌基因和抑癌基因
  15. beta 值和 M 值: 衡量样本甲基化水平的金标准
  16. 年金系数用计算机怎么算,年金系数是什么?怎么计算?
  17. PCB板层简介+走线
  18. Unreal Engin_室外场景制作笔记_001创建森林地面
  19. android 开发 网易邮箱,怎么在Android客户端设置网易企业邮箱
  20. centos 怎么退出init 3_CentOS 7.3:LAMP 动静分离部署

热门文章

  1. CreateWindowEx和CreateWindow的区别
  2. Vue 使用jsPlumb 实现连线绘图
  3. 清华大学霸榜计算机学科第一!2022 USNews世界大学排名出炉!
  4. 5、中小企业网络架构-核心层交换机基本配置
  5. np.vstack(tup)使用
  6. 企业管理中,商业智能BI主要做哪些事情?
  7. 爬取网络数据到excel表
  8. C#中Invoke,BeginInvoke的作用
  9. ThinkPad开机停留在boot menu界面、进不了系统的解决方法
  10. DTC(Deep Temporal Clustering--Fully Unsupervised Learning of Time-Domain Features)论文理解