初识POI编辑word文档
1.确定你的POI版本和word版本
经测试,3.10final版本的POI可以操作word2013,其它不知,
贴maven引用的jar
2.关于ooxml-schemas
感谢这位哥们解决了这个问题
http://blog.****.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)
如果有什么错误还请指出互相交流。