Java 富文本内容转化word导出
一、需求:
当创建使用富文本编辑器,操作完的数据,传输到后台都是带有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导出相关推荐
- java 富文本html 转 word(带图片处理
1.配置依赖 <dependency><groupId>e-iceblue</groupId><artifactId>spire.doc.free< ...
- java freemarker 图片_java通过freemarker导出包含富文本图片的word文档
废话不多说,进入正题! 本文重点在于:对富文本图片的导出(基础的freemarker+word模板导出这里不做详细解说哈) (ps:大神的东西太深奥~~懵逼了 一周才搞定,为了方便后来在更加简单,清晰 ...
- vuejs项目纯js导出word、在线下载富文本内容或者网页另存为word文件
所有前端导入导出方法集合: 前端必备技能知识:JS导出Blob流文件为Excel表格.Vue.js使用Blob的方式实现excel表格的下载(流文件下载)_勤动手多动脑少说多做厚积薄发-CSDN博客_ ...
- Java实现多文件上传下载,kindeditor富文本保存为word文件,文件列表分页显示
介绍 SpringBoot+Thymeleaf+Mybaits项目部分功能, 实现文件的多文件上传和下载,以及将kindeditor富文本内容保存为.doc文件 文件上传/创建后以列表形式显示,并且可 ...
- 富文本转换字符串 php,php 如何将一个富文本字符串生成word文档?
问题描述 我现在有一个富文本字符串, 比如$str=" qqq啊啊啊啊啊百度网址 ": 中间我省去了大量的图片base64的编码. 问题出现的环境背景及自己尝试过哪些方法 相关代码 ...
- js获取富文本内容长度_js富文本实现
转载来源:https://www.cnblogs.com/xiaohuochai/p/5884206.html 一说起富文本,人们第一印象就是像使用word一样,在网页上操作文档.实际上差不多就是这样 ...
- uni怎么使用原生html标签,uni-app如何完美解析富文本内容
在uni-app中有 rich-text 标签是自带解析富文本内容的,但是不是很完美,怎么说呢?比如富文本的代码块.图片宽度等都是无法控制的,那么现在就利用插件来解析,这个解析插件小编是利用图片.ht ...
- 提取富文本内容(包括去除图片)
//截取富文本内容 function getSimpleText(html){ var re1 = new RegExp("<.+?>","g"); ...
- 跨平台应用开发进阶(五十一):HTML5(富文本内容)连续数字、字母不自动换行问题分析及解决
文章目录 一.前言 二.问题分析 三.解决方法 3.1 对 input 标签设置 3.2 对 input 标签内的 p 标签设置 四.延伸阅读 顶部状态栏穿透问题 五.拓展阅读 一.前言 项目开发过程 ...
最新文章
- error C2065: “IDD_DIALOG1”: 未声明的标识符
- 基于视觉Transformer的目标检测
- 【收藏】wiztree大文件查找软件
- Chapter 1 First Sight——33
- 【软件开发底层知识修炼】八 Binutils辅助工具之- objdump工具 与 size,strings工具
- Wince6 Eboot中加入开机画面
- 慧材技术中核普达测量与测绘系统介绍(一)
- 腾讯联手华为!将让腾讯游戏越跑越快
- Java中ArrayList、Integer[]和int[]的相互转换
- 拿走不谢:一份历经线上考验的大规模系统的消息队列技术方案!
- shell脚本中的逻辑判断、文件目录属性判断、if特殊用法、case判断
- Spark入门到精通
- javascript监听页面刷新事件
- 体细胞选择区分癌基因和抑癌基因
- beta 值和 M 值: 衡量样本甲基化水平的金标准
- 年金系数用计算机怎么算,年金系数是什么?怎么计算?
- PCB板层简介+走线
- Unreal Engin_室外场景制作笔记_001创建森林地面
- android 开发 网易邮箱,怎么在Android客户端设置网易企业邮箱
- centos 怎么退出init 3_CentOS 7.3:LAMP 动静分离部署
热门文章
- CreateWindowEx和CreateWindow的区别
- Vue 使用jsPlumb 实现连线绘图
- 清华大学霸榜计算机学科第一!2022 USNews世界大学排名出炉!
- 5、中小企业网络架构-核心层交换机基本配置
- np.vstack(tup)使用
- 企业管理中,商业智能BI主要做哪些事情?
- 爬取网络数据到excel表
- C#中Invoke,BeginInvoke的作用
- ThinkPad开机停留在boot menu界面、进不了系统的解决方法
- DTC(Deep Temporal Clustering--Fully Unsupervised Learning of Time-Domain Features)论文理解