初识POI编辑word文档

1.确定你的POI版本和word版本

经测试,3.10final版本的POI可以操作word2013,其它不知,
贴maven引用的jar


2.关于ooxml-schemas
感谢这位哥们解决了这个问题
http://blog.csdn.net/lex1993/article/details/47062141

环境解决,下面开始上代码。

3.上代码前的几个东西
HWPFDocument,这个东西应该只能操作word2007版本及之前的版本,反正我用的时候会报错,我的word版本是2007,后来改装了2013
网上找的大部分文档都是用的这个HWPFDocument

XWPFDocument,后来终于找到这个,然后用以上搭建好的环境操作word2013。

首先,XWPFDocument是文档对象。
XWPFDocument包含XWPFParagraph包含XWPFRun。
XWPFParagraph是文档段落对象,XWPFRun是段落里面的文本对象。

表格XWPFTable,行XWPFTableRow,列XWPFTableCell,XWPFTableCell之下XWPFParagraph在之下XWPFRun

虽然写的不咋样,但是大家都应该明白哈大笑(希望以后自己看的时候能看懂)

懂了这些,再上代码!

4.代码工具类主要来源
http://www.cnblogs.com/yfrs/p/wordpoi.html
可以根据自已需求修改。
主要搞懂几个方法:

XWPFRun  setText(String value),setText(String value,int pos);

复制样式

XWPFTableRow 

getCtRow().setTrPr()

getCtRow().getTrPr()


XWPFTableCell

getCTTc().setTcPr()

getCTTc().getTcPr()


XWPFParagraph

getCTP().setPPr()

getCTP().getPPr()


XWPFRun

getCTR().setRPr()

getCTR().getRPr();

以上方法用来获取各个word对象样式和设置样式。


个人理解:
调用setText(String value),如果这个XWPFRun本身有值,value将塞在其后;
调用setText(String value,int pos),不管这个XWPFRun本身有无值,value将塞在pos处(好像是0是第一位);

setText

public void setText(java.lang.String value)
Sets the text of this text run

Parameters:
value - the literal text which shall be displayed in the document

setText

public void setText(java.lang.String value,
                    int pos)
Sets the text of this text run in the

Parameters:
value - the literal text which shall be displayed in the document
pos - - position in the text array (NB: 0 based)
如果有什么错误还请指出互相交流。