网上关于java读写word的文档很多,没找到最好的,我抄了一篇,是在e盘新建一个hello.docx文档里面写入Hello, from Office 2007!文字作为标识,以hello.docx为模板在e盘下用java新建一个e:\\response.docx,写入哈哈,终于可以用java写word了,Hello, Office 2007, from Java6!
package com;
import static org.junit.Assert.assertEquals;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipException;
import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.junit.Test;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.xml.sax.SAXException;
public class InputToword {
@Test public void modifyDocumentAndSave()throws IOException, ZipException,
SAXException,ParserConfigurationException,TransformerException,TransformerConfigurationException
{
//读取e盘下的hello.docx文档
ZipFile docxFile =new ZipFile(new File("e:\\hello.docx"));
//解压缩后获得里面和内容相关的xml,word文档是可以解压的,大家可以解压了试试
ZipEntry documentXML =docxFile.getEntry("word/document.xml");
InputStream documentXMLIS =docxFile.getInputStream(documentXML);
DocumentBuilderFactory dbf =DocumentBuilderFactory.newInstance();
Document doc =dbf.newDocumentBuilder().parse(documentXMLIS);
//获得文档里相关的节点
Element docElement = doc.getDocumentElement();
assertEquals("w:document", docElement.getTagName());
Element bodyElement = (Element)docElement.getElementsByTagName("w:body").item(0);
assertEquals("w:body", bodyElement.getTagName());
Element pElement = (Element)bodyElement.getElementsByTagName("w:p").item(0);
assertEquals("w:p", pElement.getTagName());
Element rElement = (Element)pElement.getElementsByTagName("w:r").item(0);
assertEquals("w:r", rElement.getTagName());
Element tElement = (Element)rElement.getElementsByTagName("w:t").item(0);
assertEquals("w:t", tElement.getTagName());
//查找文档中的Hello, from Office 2007!文字部分
assertEquals("Hello, from Office 2007!",tElement.getTextContent());
//写入新的内容
tElement.setTextContent("哈哈,终于可以用java写word了,Hello, Office 2007, from Java6!");
Transformer t =TransformerFactory.newInstance().newTransformer();
ByteArrayOutputStream baos =new ByteArrayOutputStream();
t.transform(new DOMSource(doc),
new StreamResult(baos));
//创建新的要输出的word文档,按钮原来word文档的内容写入新的文档中。
ZipOutputStream docxOutFile = new ZipOutputStream(new FileOutputStream("e:\\response.docx"));
Enumeration entriesIter =docxFile.entries();
while (entriesIter.hasMoreElements())
{
ZipEntry entry = (ZipEntry) entriesIter.nextElement();
if (entry.getName().equals("word/document.xml"))
{
byte[] data = baos.toByteArray();
docxOutFile.putNextEntry(new ZipEntry(entry.getName()));
docxOutFile.write(data, 0, data.length);
docxOutFile.closeEntry();
}
else
{
InputStream incoming =docxFile.getInputStream(entry);
byte[] data = new byte[1024 * 16];
int readCount =incoming.read(data, 0, data.length);
docxOutFile.putNextEntry(new ZipEntry(entry.getName()));
docxOutFile.write(data, 0, readCount);
docxOutFile.closeEntry();
}
}
docxOutFile.close();
}
}
测试的时候,点右键,Run As 用jUnit Test测试,运行完成后会生成新的名字为e:\\response.docx的word文档。
分享到:
相关推荐
本主题将深入探讨如何利用给定的`itextpdf-5.5.9.jar`和`jacob.jar`这两个库来实现Java读取Word文档页数的功能。 `jacob.jar`是一个Java到COM桥接库,它允许Java应用程序调用Microsoft Office组件,如Word,从而...
首先,标题“java读取word文档.pdf”和描述“java读取word文档.pdf”暗示了文章内容可能涉及使用Java语言读取Word文档的技术。 从片段中可以提取到的关键技术点包括: 1. Apache POI库:Apache POI是一个开源的...
在这个场景中,我们将重点讨论如何使用Java POI读取Word文档并将其内容转换为HTML网页,同时确保图片和公式等复杂元素能够正确显示。 首先,你需要在你的Java项目中引入Apache POI库。可以通过Maven或Gradle来添加...
### Java读取Word文档知识点详解 #### 一、引言 在日常的软件开发工作中,处理办公文档(如Word)的需求十分常见。Java作为一种广泛使用的编程语言,提供了多种方式来读取Word文档中的内容,包括但不限于使用...
java读取不同版本文档的内容以及字体大小,实现对文档格式进行匹配!
Java读取Word文档中指定位置(可以自己自定义位置)的表格数据或文本内容 * @param filePath 文档路径 * @param start 指定位置开始读取表格数据的该位置上的字符串 * @param end 指定位置开始结束读取表格数据的该...
在本文中,我们将详细讨论如何使用Apache POI库来读取Word文档,以及在Java项目中如何添加和配置依赖。 首先,要使用Apache POI读取Word文档,你需要下载并引入相关的jar包。在给定的压缩包“poi读取word依赖包”中...
Java 读取 Word、PDF 格式文档方法 Java 是一种广泛应用的编程语言,对文档操作是其重要的应用场景之一。本文将介绍 Java 如何读取 Word、PDF 格式文档的几种方法。 使用 Jacob Jacob 是一个桥接工具,连接 Java ...
Java 读取 Word 文档是常见的需求,尤其是在自动化处理、数据导出或文档生成的场景中。本示例主要探讨如何使用 Java 处理 RTF(Rich Text Format)文档,而不是直接读取 .doc 或 .docx 文件。这是因为直接读取 Word ...
jacob官方文档,java读取word文档
转换过程中,我们需要一个能够读取Word文档并将其转化为HTML的库,例如Apache POI或Spire.Doc for Java。 Apache POI是Java中处理Microsoft Office格式文件的一个流行库,它支持读写Word(.doc/.docx)文件。然而,...
通过Java读取word表格中的内容,将内容存到数据库中,将Word中的图片存到硬盘中
首先,为了读取Word文件,我们需要使用Java的一个库,如Apache POI。Apache POI是一个流行的开源项目,提供了API来处理Microsoft Office格式的文件,包括Word(.doc和.docx)文档。通过使用Apache POI,我们可以解析...
在Java中,读取Word文档(.docx格式)主要使用XWPF(XML Word Processing)API。以下是使用POI读取Word文件的基本步骤: 1. **添加依赖**:在项目中引入Apache POI的依赖库。如果你使用的是Maven,可以在pom.xml...
本人编写的用java 实现对word文档的新建,打开,写入保存。需要包含poi外包实现。
Java2Word 是一个Java库,用于将数据转换为Microsoft Word文档。这个库主要利用Jacob组件,这是一个Java-COM Bridge,允许Java程序与Windows平台上的COM(Component Object Model)组件进行交互,尤其是处理...
java调用PageOffice在线编辑word文件的时候,获取word文档的条目化内容。 PageOffice V4.0 企业版试用序列号:Q37LN-W8NI-KFSQ-LEY3Y 部署步骤: 1. 拷贝simpledemo8文件夹到Tomcat的webapps目录下 2. 访问...
通过这些API,你可以创建、修改和读取Word文档,包括书签的插入和替换。 3. **书签插值** 书签是Word文档中的一个特性,可以标记文档的特定位置。在Java中,可以通过查找书签并替换其内容来实现动态数据插入。例如...