从官网下载POI包,将所有的jar导入到项目中(具体使用根据项目而定,此处为了省略丢包查找问题)。
读取word2007文件,并对word2007的表格操作方式。
OPCPackage pkg = null; try { pkg = POIXMLDocument.openPackage("F:\\word\\a.docx"); XWPFDocument doc = new XWPFDocument(pkg); List<XWPFTable> tables = doc.getTables(); List<XWPFTableCell> cells; for(XWPFTable table : tables) { XWPFTableRow row = table.getRow(1); cells = row.getTableCells(); for(XWPFTableCell cell : cells) { this.setCell(text, cell); } }
对word操作主要用到的是XWPFDocument类,这个类可以获取word2007的所有表格和段落。
如果需要操作word2007字体或者别的样式,需要对相应的段落进行操作。
由于POI大部分是对word2003的操作,word2007较少,所以只能通过研究word2007和POI源码找到实现的方法。
对于研究word2007而言,可以将word2007的后缀(.docx)改成.zip,然后将其解压,可以获得word2007的xml存储方式。word/document.xml是word的正文,存储了段落和表格,word/styles.xml是word的格式(如正文),通过修改这部分内容可以实现修改word样式。
建议在eclipse中安装jad(http://www.cnblogs.com/visoncheng/p/3360228.html),在找不到方法时,可以通过阅读源码,找到相应的方法。本人一般的做法是读word2007的xml,根据xml去猜调用什么API,在找不到的情况下,读读源码,也可以提供一种思路。
实践得到的一些东西:
XWPFDocument getBodyElements 可以获得word/document.xml下所有内容,可以操作段落和表格。
XWPFParagraph createRun可以创建一个段落。
XWPFRun 可以修改段落部分文字样式。
word/styles.xml 的styleId= ‘a'的样式,估计是正文的样式,但是不清楚的是修改这个样式的字体会修改到标题的字体。
http://pan.baidu.com/share/link?shareid=2567928213&uk=1144409864 是研究时用到的代码