网上关于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文档。
分享到:
相关推荐
用Java读取Word文档
里面包含一个word转pdf的jar,和一个读取pdf的jar。可以实现Java读取Word文档的页数。
本代码实现使用Java程序读取word文档成网页,将word文档按原样在网页输出。项目编码为UTF-8,文件编码也是utf8,再不要说乱码这种骚话了,选择utf8加载项目就不会乱码
java读取word文档.pdf
java读取不同版本文档的内容以及字体大小,实现对文档格式进行匹配!
Java读取Word文档中指定位置(可以自己自定义位置)的表格数据或文本内容 * @param filePath 文档路径 * @param start 指定位置开始读取表格数据的该位置上的字符串 * @param end 指定位置开始结束读取表格数据的该...
java利用poi读取word文档内容所依赖的jar包。poi可以读取doc、docx格式文档。
整理了用java如何读取word文档,pdf文档的几种方法,含有程序
jacob官方文档,java读取word文档
java可以快速读取word里面的内容,如题所示
通过Java读取word表格中的内容,将内容存到数据库中,将Word中的图片存到硬盘中
java读取word文档 这是我收集的资料 加以汇总 希望对你有用~~
java 实现 word 文档的在线预览,资源包含代码和jar包,下载放入项目既可以使用
本人编写的用java 实现对word文档的新建,打开,写入保存。需要包含poi外包实现。
java 利用POI读取Word文件中的内容 java 利用POI读取Word文件中的内容
java调用PageOffice在线编辑word文件的时候,获取word文档的条目化内容。 PageOffice V4.0 企业版试用序列号:Q37LN-W8NI-KFSQ-LEY3Y 部署步骤: 1. 拷贝simpledemo8文件夹到Tomcat的webapps目录下 2. 访问...
用java语言实现对word表格操作,实现自动批量往数据库中插入数据,节省插入数据时间。
java实现word文档到xml文档转换浅析
使用POI读写Word doc文件 Apache poi的hwpf模块是专门用来对word doc文件进行读写操作的。在hwpf里面我们使用HWPFDocument来表示一个word doc文档