java操作word(利用xml模板)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.InputStream;

import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

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.w3c.dom.NodeList;

import org.w3c.dom.Node;

import org.w3c.dom.Document;

import org.w3c.dom.Element;

public class OperateXml {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

OperateXml ox = new OperateXml();

ox.operateXml();

}

public void operateXml() {

try {

DocumentBuilderFactory factory = DocumentBuilderFactory

.newInstance();

DocumentBuilder builder = factory.newDocumentBuilder();

Document document = builder.parse(new File("D:/贷前核查输出模板.xml"));

Element element = document.getDocumentElement();

// 得到所有表格集合

NodeList tblList = element.getElementsByTagName("w:tbl");// w:t标签组

// 得到第一张表

Element tbl1 = (Element) tblList.item(0);

// 得到第一张表中所有行

NodeList rowList = tbl1.getElementsByTagName("w:tr");

for (int i = 1; i < rowList.getLength(); i++) {

Element rowNode = (Element) rowList.item(i);

// 得到这行的所有单元格

NodeList cellList = rowNode.getElementsByTagName("w:tc");

// 基于这次模版开始从每行的第二个单元格操作

for (int j = 1; j < cellList.getLength(); j++) {

if (j == 1) {

Element cellNode = (Element) cellList.item(j);

// 得到单元格底下的文本(p节点)

Element pNode = (Element) cellNode

.getElementsByTagName("w:p").item(0);

// 得到文本行

Element rNode = (Element) pNode.getElementsByTagName(

"w:r").item(0);

//如果有文本值,那么修改,没有则给p节点追加r节点

if (rNode != null) {

Node tNode = rNode.getElementsByTagName("w:t")

.item(0);

tNode.setTextContent(i+"-"+j);

} else {

Document parent = pNode.getOwnerDocument();

Element r = null;

Element t = null;

r = parent.createElement("w:r");

t = parent.createElement("w:t");

t.setTextContent(i+"-"+j);

pNode.appendChild(r);

r.appendChild(t);

}

}

}

}

saveXml("D:/贷前核查输出模板1.doc",document);

} catch (Exception ex) {

System.out.println("有误");

}

}

public static void saveXml(String fileName, Document doc) {//将Document输出到文件TransformerFactory transFactory=TransformerFactory.newInstance();

try {

Transformer transformer = transFactory.newTransformer();

transformer.setOutputProperty("indent", "yes");

DOMSource source=new DOMSource();

source.setNode(doc);

StreamResult result=new StreamResult();

result.setOutputStream(new FileOutputStream(fileName));

transformer.transform(source, result);

} catch (TransformerConfigurationException e){

e.printStackTrace();

} catch (TransformerException e) {

e.printStackTrace();

} catch (FileNotFoundException e){

e.printStackTrace();

}

}

}

相关文档
最新文档