POI创建生成Word文件
2014-11-12 09:47
113 查看
直接把Html文本写入到Word文件
获取查看页面的body内容和引用的css文件路径传入到后台。
把对应css文件的内容读取出来。
利用body内容和css文件的内容组成一个标准格式的Html文本。
根据组合后的Html文本生成对应的ByteArrayInputStream。
构建一个默认的POIFSFileSystem,并利用它和生成的ByteArrayInputStream创建一个WordDocument。
把构建的POIFSFileSystem写入到对应的输出流。
经过上面这几步之后我们就可以把Html格式的文本写入到Word文件中,同时使生成的Word文件呈现出对应的Web样式。需要注意的是原本Html文件中引用到的css文件的内容需要放到生成的Word文件中,生成后的Word文件才会呈现出对应的Web样式。下面是一个针对于该方式的一个简单例子:
1.css代码如下
1.html对应的内容如下:
获取查看页面的body内容和引用的css文件路径传入到后台。
把对应css文件的内容读取出来。
利用body内容和css文件的内容组成一个标准格式的Html文本。
根据组合后的Html文本生成对应的ByteArrayInputStream。
构建一个默认的POIFSFileSystem,并利用它和生成的ByteArrayInputStream创建一个WordDocument。
把构建的POIFSFileSystem写入到对应的输出流。
经过上面这几步之后我们就可以把Html格式的文本写入到Word文件中,同时使生成的Word文件呈现出对应的Web样式。需要注意的是原本Html文件中引用到的css文件的内容需要放到生成的Word文件中,生成后的Word文件才会呈现出对应的Web样式。下面是一个针对于该方式的一个简单例子:
public void htmlToWord2() throws Exception { InputStream bodyIs = new FileInputStream("f:\\1.html"); InputStream cssIs = new FileInputStream("f:\\1.css"); String body = this.getContent(bodyIs); String css = this.getContent(cssIs); //拼一个标准的HTML格式文档 String content = "<html><head><style>" + css + "</style></head><body>" + body + "</body></html>"; InputStream is = new ByteArrayInputStream(content.getBytes("GBK")); OutputStream os = new FileOutputStream("f:\\1.doc"); this.inputStreamToWord(is, os); } /** * 把is写入到对应的word输出流os中 * 不考虑异常的捕获,直接抛出 * @param is * @param os * @throws IOException */ private void inputStreamToWord(InputStream is, OutputStream os) throws IOException { POIFSFileSystem fs = new POIFSFileSystem(); //对应于org.apache.poi.hdf.extractor.WordDocument fs.createDocument(is, "WordDocument"); fs.writeFilesystem(os); os.close(); is.close(); } /** * 把输入流里面的内容以UTF-8编码当文本取出。 * 不考虑异常,直接抛出 * @param ises * @return * @throws IOException */ private String getContent(InputStream... ises) throws IOException { if (ises != null) { StringBuilder result = new StringBuilder(); BufferedReader br; String line; for (InputStream is : ises) { br = new BufferedReader(new InputStreamReader(is, "UTF-8")); while ((line=br.readLine()) != null) { result.append(line); } } return result.toString(); } return null; }
1.css代码如下
table { border: 1px solid blue; width: 800px; height: 500px; text-align: center;}td { width: 200px; border: 1px solid blue;}
1.html对应的内容如下:
<table cellpadding="5" style="border-collapse: collapse;"> <tr> <td>中文</td> <td>中文</td> <td>中文</td> <td>中文</td> </tr> <tr> <td>中文</td> <td>中文</td> <td>中文</td> <td>中文</td> </tr></table>
相关文章推荐
- 使用 poi 根据 word 模板生成 word 文件
- 使用poi操作模板文件重新生成新的word表单文件
- java poi 基于模板文件替换字符生成word文档
- POI生成Web版Word文件
- poi-tl 自定义图片处理类,解决生成多个文件时图片重复出现在word文档中问题
- poi生成word文件
- 【POI】导出excel文件,不生成中间文件,直接将内存中的数据创建对象下载到浏览器
- java通过poi-tl使用word模版生成word文件
- POI根据docx文件生成word文档(jeesite)
- 使用 poi 根据 word 模板生成 word 文件
- 【POI】使用POI 创建生成XLS,打开xls文件提示【此文件中某些文本格式可能已经更改,因为它已经超出最多允许的字体数。】
- 解决java poi生成word文件格式错误的问题。
- java poi操作word模版文件生成表单和修改
- POI生成Web版Word文件
- 关于 Word 如何创建临时文件的说明
- 用VB将WORD文档(或其他的二进制数据)生成xml文件并互相转换
- 动态创建服务器控件,获取HTML输出(用于生成静态文件,简化页面,简化编程等)
- 用VB将WORD文档(或其他的二进制数据)生成xml文件并互相转换
- 用VB将WORD文档(或其他的二进制数据)生成xml文件并互相转换
- POI_Java里访问Excel,Word等格式的文件