700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > java根据html生成word文档 Java之HTML富文本导出WORD(不含图片)

java根据html生成word文档 Java之HTML富文本导出WORD(不含图片)

时间:2021-12-13 13:53:15

相关推荐

java根据html生成word文档 Java之HTML富文本导出WORD(不含图片)

一、需求:

我们在使用富文本编辑器来编辑文本的时候,文本会自带HTML的标签比如

等来修饰字体样式。

比如ueditor、kindeditor等富文本编辑器。

那么,我们如何将富文本编辑器里的内容导出到word文档里?

二、思路:

word文档是可以识别完整的html页面的,所以我们需要将首尾缺失的标签补齐。

1.首先我们需要建立一个word导出的工具类:

/**

* html 导出 word 工具类

* @author zhangxiang

*

*/

public class WordUtil {

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();

}

}

然后将富文本的内容拼接成一个HTML页面:

StringBuffer sbf = new StringBuffer();

sbf.append("

"); //缺失的首标签

sbf.append(content); //富文本内容

sbf.append("");//缺失的尾标签

WordUtil.exportWord(request,response,sbf.toString(),wordName);

===========================

以上便是本文的全部内容了,不知道对你有没有帮助呢。

我会认真写好每一篇文章,一直努力下去~

===========================

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。