`

直接把Html文本写入到Word文件

    博客分类:
  • POI
 
阅读更多

直接把Html文本写入到Word文件

  1. 获取查看页面的body内容和引用的css文件路径传入到后台。
  2. 把对应css文件的内容读取出来。
  3. 利用body内容和css文件的内容组成一个标准格式的Html文本。
  4. 根据组合后的Html文本生成对应的ByteArrayInputStream。
  5. 构建一个默认的POIFSFileSystem,并利用它和生成的ByteArrayInputStream创建一个WordDocument。
  6. 把构建的POIFSFileSystem写入到对应的输出流。

       经过上面这几步之后我们就可以把Html格式的文本写入到Word文件中,同时使生成的Word文件呈现出对应的Web样式。需要注意的是原本Html文件中引用到的css文件的内容需要放到生成的Word文件中,生成后的Word文件才会呈现出对应的Web样式。下面是一个针对于该方式的一个简单例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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代码如下

1
2
3
4
5
6
7
8
9
10
table {
       border: 1px solid blue;
       width: 800px;
       height: 500px;
       text-align: center;
}
td {
       width: 200px;
       border: 1px solid blue;
}

1.html对应的内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<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>

效果图

分享到:
评论

相关推荐

    C# HtmlToWord 将HTML文件转换成word文档

    5. **保存Word文档**:最后,保存Word文档到指定的文件路径。 在实际操作中,我们可能需要处理更多的细节,例如CSS样式、链接、表格等。CSS样式可以通过解析并应用到Word文档的样式表中来保留。链接如果无法本地化...

    富文本编辑器导出word

    Apache POI提供了一套API,可以读取、写入和修改Word文档。利用这个库,我们可以解析富文本编辑器生成的HTML,提取文本和样式,然后创建对应的Word文档结构。 以下是实现这个功能的基本步骤: 1. **HTML解析**:...

    通过thinkphp5+PHPOffice读取word文件写入到html文件

    这段代码首先加载Word文件,然后遍历文档中的各个元素,如段落(Paragraph)和文本块(TextRun),并将它们转换成HTML标签。最后,将生成的HTML内容写入一个新的文件中。 注意,这只是一个基本的转换示例,实际Word...

    java poi把word文档转化为html,支持doc。

    代码通常会包含读取Word文件、遍历内容并构建HTML字符串的逻辑。 6. **注意事项**: - 由于Word和HTML的结构差异,转换可能无法完全保持原始格式,特别是复杂的布局和样式。 - 图片处理:Word文档中的图片需要被...

    QT基于HTML生成WORD文件

    在QT中生成基于HTML的Word文件,意味着我们可以利用QT的QTextDocument类来创建文档,然后通过将HTML内容转化为Word格式,实现复杂的文本格式化和布局设计。 QTextDocument是QT中的一个核心组件,它提供了丰富的文本...

    qt写word两种方式代码

    - **QWord库介绍**:QWord是一个用于Qt的开源库,它提供了API来直接操作Word文档,包括读取、写入和编辑文档内容,以及处理表格、图像、样式等。 - **使用**: - 首先需要安装QWord库,确保项目配置正确,引入...

    java的html2word

    5. **写入Word文档**:将转换后的元素写入到Word文档中。 ```java WordDocumentWriter.write(doc, outputStream); ``` 6. **保存文件**:最后,将Word文档保存到磁盘。 ```java FileOutputStream out = new ...

    爬虫把图片和文字写入到word中

    爬虫抓取到的图片URL需要转换为本地文件,才能被写入Word文档。这通常通过下载图片并保存到本地完成。在`writeWord`方法中,可以创建一个`URLConnection`对象,通过`connect()`方法建立与图片URL的连接,然后使用`...

    利用POI将word转换成html实现在线阅读

    1. **读取Word文档**:使用HWPFDocument或XWPFDocument类根据文档格式打开Word文件。如果是Word 2003格式(.doc),则使用HWPFDocument;如果是Word 2007及以上版本(.docx),则使用XWPFDocument。 2. **遍历文档...

    aspose.word 解析word读取及word转pdf、转html

    1. 创建`Document`对象:与读取操作相同,首先加载Word文档到`Document`对象。 2. 创建`PdfSaveOptions`:为了指定PDF保存选项,创建一个`PdfSaveOptions`实例,可以设置如页面大小、图像质量、书签、安全性等参数。...

    qt 界面数据保存到Word文件和Excel文件

    首先,对于“qt界面数据保存到Word文件”,这里提到的“书签和模板”是关键。在Word文档中,书签是一种可以标记特定位置的元素,使得程序能够准确地找到并更新这些位置上的内容。开发者通常会创建一个预定义的Word...

    亲测,以html形式显示或预览word,excel,pdf,txt

    由于浏览器能够直接解析并显示HTML,因此将其他格式的文档转换为HTML,可以让用户无需下载原始文件就能在线预览内容,提高了用户体验。 在ASP.NET框架下,可以使用多种库来实现这个功能: 1. **Word转HTML**:可以...

    freemarker根据word模板生成word的完整示例

    5. **保存文件**:最后,你需要保存生成的Word文档到本地或服务器上,这可以通过Java的文件操作API完成。 关于标签中的"freemarker",它强调了Freemarker作为模板引擎的角色;"模板"指的是用于生成Word文档的XML...

    一个通过替换word模板中的标签 生成word文档 html文档的类

    - 替换完成后,需要保存修改,这可以通过Word Interop对象的`SaveAs()`方法实现,将更新后的文档保存为新的Word文件。 6. **生成HTML文档**: - 除了生成Word文档外,此工具还能将内容转换为HTML格式,适合于网页...

    java中html转word方法以及用到的jar包

    以下是一个简单的示例,展示了如何使用jsoup解析HTML,然后用Apache POI将内容写入Word文档: ```java import org.apache.poi.xwpf.usermodel.*; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; ...

    java html转换word

    5. **保存Word文档**:完成转换后,使用XWPFDocument的write方法将内容写入到Word文件中。 以下是一个简单的示例代码片段,展示了如何开始这个过程: ```java import org.apache.poi.xwpf.usermodel.*; public ...

    自己用C#写的Word转Html工具,亲测可用

    7. **转换逻辑**:转换Word到HTML的过程通常包括解析DOCX文件,提取文本、样式、图片等元素,然后根据HTML语法规则重新构建文档结构。这可能涉及到样式映射(Word样式到CSS)、图像处理(嵌入或链接)和特殊格式转换...

    C#richTextBox显示和保存带格式的Word文档

    总之,C#中利用`richtextbox`显示、保存和另存为带格式的Word文档涉及到了文本处理、文件操作和API交互等多个知识点。通过合理使用.NET Framework提供的类库和第三方工具,我们可以轻松地实现在Windows Forms应用中...

    Android word转html

    Apache POI 是一个流行的Java库,它允许我们读取、写入和修改Microsoft Office格式的文件,包括Word(.doc)文档。在本场景中,开发者遇到了在使用POI进行Word到HTML转换时,编码问题导致转换失败的问题。 1. **...

    Java读取word文档内容并输出成网页(含图片,公式)

    8. **输出到网页**:最后,将生成的HTML字符串写入到文件系统中的HTML文件中,以便在浏览器中查看。 注意,处理Word中的复杂元素,如图片和公式,可能需要额外的库,如`Apache POI-OOXML-Schemas`和`org....

Global site tag (gtag.js) - Google Analytics