《poi操作word2007常用方法总结.doc》由会员分享,可在线阅读,更多相关《poi操作word2007常用方法总结.doc(60页珍藏版)》请在三一文库上搜索。
1、poi操作word 2007常用方法总结import java.io.File;import java.io.FilelnputStream;import java.io.FileOutputStream;import java.ioO Exception;import java.i onputStream;import java.math.Biglnteger;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import mons.lang3.StringUtils;import org.a
2、pache.poi.POIXMLDocument;import org.apache.poi.openxml4j.opc.OPCPackage;import org.apache.poi.xwpf.model.XWPFHeaderFooterPolicy;import org.apache.poi.xwpf.usermodel.BodyElementType;import org.apache.poi.xwpf.usermodel.Borders;import org.apache.poi.xwpf.usermodel.BreakType;import org.apache.poi.xwpf.
3、usermodel.Document;importorg.apache.poi.xwpf.usermodel.lBodyElement;importorg.apache.poi.xwpf.usermodel.ParagraphAlignment;importorg.apache.poi.xwpf.usermodel.TextAlignment;importorg.apache.poi.xwpf.usermodel.VerticalAlign;importorg.apache.poi.xwpf.usermodel.XWPFDocument;importorg.apache.poi.xwpf.us
4、ermodel.XWPFParagraph;importorg.apache.poi.xwpf.usermodel.XWPFRelation;importorg.apache.poi.xwpf.usermodel.XWPFRun;importorg.apache.poi.xwpf.usermodel.XWPFTable;importorg.apache.poi.xwpf.usermodel.XWPFTableCell;importorg.apache.poi.xwpf.usermodel.XWPFTableRow;importorg.apache.xmlbeans.XmlException;i
5、mportorg.apache.xmlbeans.XmlToken;importorg.apache.xmlbeans.impl.xb.xmlschema.SpaceAttribute;importorg.openxmlformats.schemas.drawingml.x2006.main.CTNonVisualDrawingProps;importorg.openxmlformats.schemas.drawingml.x2006.main.CTPositiveSize2D;importorg.openxmlformats.schemas.drawingml.x2006.wordproce
6、ssingDrawing.CTInline;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTBackground;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTBookmark;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTBorder;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.C
7、TColor;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTDecimalNumber;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTEm;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTFIdChar;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTFonts;importorg.
8、openxmlformats.schemas.wordprocessingml.x2006.main.CTHMerge;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTHeight;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTHighlight;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTHpsMeasure;importorg.openxmlformat
9、s.schemas.wordprocessingml.x2006.main.CTHyperlink;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTInd;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTJc;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTMarkupRange;importorg.openxmlformats.schemas.wordproce
10、ssingml.x2006.main.CTOnOff;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTP;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTPPr;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTPageBorders;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTPag
11、eMar;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTPageS z;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTParaRPr;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTR;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTRPr;importorg.openxmlform
12、ats.schemas.wordprocessingml.x2006.main.CTRow;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTSectPr;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTShd;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTSignedTwipsMeasure;importorg.openxmlformats.schemas.wo
13、rdprocessingml.x2006.main.CTSpacing;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTTbl;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblBorders;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblGrid;importorg.openxmlformats.schemas.wordprocessingml.x2
14、006.main.CTTblGridCol;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblPr;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblWidth;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTTc;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTTcPr;imp
15、ortorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTText;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTTextScale;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTTrPr;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTUnderline;importorg.openxmlform
16、ats.schemas.wordprocessingml.x2006.main.CTVMerge;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTVerticalJc;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.STBorder;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.STEm;importorg.openxmlformats.schemas.wordproc
17、essingml.x2006.main.STFIdCharType;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.STHdrFtr;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.STHeightRule;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.STHighlightColor;importorg.openxmlformats.schemas.wordprocess
18、ingml.x2006.main.STJc;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.STLineSpacingRule;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.STMerge;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.STOnOff;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.
19、STPageOrientation;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.STShd;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.STTblWidth;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.STUnderline;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.STVertica
20、lAlignRun;import org.openxmlformats.schemas.wordprocessingml.x2006.main.STVerticalJc;public class POI_Word2007_ 工具类 _S3_Test /替换复制表格段落Word插入书签*/* Description:添加书签String colorVal,boolean isBlod, boolean isUnderLine,String colorVal,boolean isBlod, boolean isUnderLine,*/public void addParagraphContentB
21、ookmarkBasicStyle(XWPFParagraph p,String content, BigInteger markId, String bookMarkName,boolean isInsert,boolean isNewLine, String fontFamily,boolean isBlod,String fontSize, String colorVal,boolean isUnderLine, String underLineColor,STUnderline.Enum underStyle,boolean isItalic,boolean isStrike) CTB
22、ookmark bookStart = p.getCTP().addNewBookmarkStart();bookStart.setld(markld);bookStart.setName(bookMarkName);XWPFRun pRun = getOrAddParagraphFirstRun(p, islnsert, isNewLine);setParagraphRunFontlnfo(p, pRun, content, fontFamily, fontSize);setParagraphTextStylelnfo(p, pRun, colorVal, isBlod, isUnderLi
23、ne,underLineColor, underStyle, isItalic, isStrike,false , falsefalse , false , false , false , false , null , false , null , false null , null , null , 0, 0, 0);CTMarkupRange bookEnd = p.getCTP().addNewBookmarkEnd();bookEnd.setld(markld);* Description:添加书签*/public void addParagraphContentBookmark(XW
24、PFParagraph p, String content,Biglnteger markld, String bookMarkName,boolean islnsert,boolean isNewLine, String fontFamily, String fontSize,String colorVal,boolean isBlod, boolean isUnderLine,String underLineColor, STUnderline.Enum underStyle,booleanisltalic,boolean isStrike,boolean isDStrike,boolea
25、nisShadow,booleanisVanish,booleanisEmboss,booleanislmprint,booleanisOutline,boolean isEm,STEm.Enum emType,booleanisHightLight,STHighlightColor.Enum hightStyle,boolean isShd,STShd.Enum shdStyle, String shdColor, VerticalAlign verticalAlign,int position, int spacingValue, int indent) CTBookmark bookSt
26、art = p.getCTP().addNewBookmarkStart();bookStart.setld(markld);bookStart.setName(bookMarkName);XWPFRun pRun = getOrAddParagraphFirstRun(p, islnsert, isNewLine);setParagraphRunFontlnfo(p, pRun, content, fontFamily, fontSize);setParagraphTextStylelnfo(p, pRun, colorVal, isBlod, isUnderLine,underLineCo
27、lor, underStyle, isltalic, isStrike, isDStrike,isShadow, isVanish, isEmboss, islmprint, isOutline, isEm,emType, isHightLight, hightStyle, isShd, shdStyle, shdColor,verticalAlign, position, spacingValue, indent);String colorVal,boolean isBlod, boolean isUnderLine,CTMarkupRange bookEnd = p.getCTP().ad
28、dNewBookmarkEnd();bookEnd.setld(markld);/*Word*/插入超链接* Description:默认的超链接样式*/public void addParagraphTextHyperlinkBasicStyle(XWPFParagraph paragraph,String url, String text, String fontFamily, String fontSize,isStrike) String colorVal,boolean isBlod, boolean isltalic, booleanaddParagraphTextHyperlin
29、k(paragraph, url, text, fontFamily, fontSize,colorVal, isBlod,true , 0000FF , STUnderline.SINGLE, isltalic,isStrike,false , false , false , false , false , false , falsenull , false , null , false , null , null , null , 0, 0, 0);* Description:设置超链接样式* Description:设置超链接样式*/public void addParagraphTex
30、tHyperlink(XWPFParagraph paragraph, String url.String text, String fontFamily, String fontSize, String colorVal,boolean isBlod, boolean isUnderLine, String underLineColor,STUnderline.Enum underStyle,boolean isItalic, boolean isStrike,boolean isDStrike, boolean isShadow, boolean isVanish,boolean isEm
31、boss, boolean isImprint,boolean isOutline,boolean isEm, STEm.Enum emType,boolean isHightLight,STHighlightColor.Enum hightStyle,boolean isShd,STShd.Enum shdStyle, String shdColor,STVerticalAlignRun.Enum verticalAlign,int position,int spacingValue, int indent) / Add the link as External relationshipSt
32、ring id = paragraph.getDocument().getPackagePart().addExternalRelationship(url,XWPFRelation.HYPERLINK.getRelation().getld();/ Append the link and bind it to the relationshipCTHyperlink cLink = paragraph.getCTP().addNewHyperlink(); cLink.setId(id);/ Create the linked textCTText ctText = CTText.Factor
33、y.newlnstance();ctText.setStringValue(text);CTR ctr = CTR.Factory.newInstance();CTRPr rpr = ctr.addNewRPr();if (StringUtils.isNotBlank(fontFamily) /设置字体CTFonts fonts = rpr.isSetRFonts() ? rpr.getRFonts() : rpr.addNewRFonts();fonts.setAscii(fontFamily);fonts.setEastAsia(fontFamily);fonts.setHAnsi(fon
34、tFamily);if (StringUtils.isNotBlank(fontSize) /设置字体大小CTHpsMeasure sz = rpr.isSetSz() ? rpr.getSz() : rpr.addNewSz(); sz.setVal( new Biglnteger(fontSize);CTHpsMeasure szCs = rpr.isSetSzCs() ? rpr.getSzCs(): rpr .addNewSzCs();szCs.setVal( new BigInteger(fontSize);/设置超链接样式/字体颜色if (StringUtils.isNotBlan
35、k(colorVal) CTColor color = CTColor.Factory.newlnstance();color.setVal(colorVal);rpr.setColor(color);/加粗if (isBlod) CTOnOff bCtOnOff = rpr.addNewB();bCtOnOff.setVal(STOnOff.TRUE);/下划线if (isUnderLine) CTUnderline udLine = rpr.addNewU();udLine.setVal(underStyle);udLine.setColor(underLineColor);/倾斜if (
36、isItalic) CTOnOff iCtOnOff = rpr.addNewl();iCtOnOff.setVal(STOnOff.TRUE);/删除线if (isStrike) CTOnOff sCtOnOff = rpr.addNewStrike();sCtOnOff.setVal(STOnOff.TRUE);/双删除线if (isDStrike) CTOnOff dsCtOnOff = rpr.addNewDstrike(); dsCtOnOff.setVal(STOnOff.TRUE);/阴影if (isShadow) CTOnOff shadowCtOnOff = rpr.addN
37、ewShadow(); shadowCtOnOff.setVal(STOnOff.TRUE);/隐藏if (isVanish) CTOnOff vanishCtOnOff = rpr.addNewVanish(); vanishCtOnOff.setVal(STOnOff.TRUE);/阳文if (isEmboss) CTOnOff embossCtOnOff = rpr.addNewEmboss();embossCtOnOff.setVal(STOnOff.TRUE);/阴文if (islmprint) CTOnOff isImprintCtOnOff = rpr.addNewlmprint
38、(); islmprintCtOnOff.setVal(STOnOff.TRUE);/ 空心if (isOutline) CTOnOff isOutlineCtOnOff = rpr.addNewOutline(); isOutlineCtOnOff.setVal(STOnOff.TRUE);/ 着重号if (isEm) CTEm em = rpr.addNewEm();em.setVal(emType);/突岀显示文本if (isHightLight) if (hightStyle !=null ) CTHighlight hightLight = rpr.addNewHighlight()
39、;hightLight.setVal(hightStyle);if (isShd) /设置底纹CTShd shd = rpr.addNewShd();if (shdStyle != null ) shd.setVal(shdStyle);if (shdColor != null ) shd.setColor(shdColor);/ 上标下标if (verticalAlign !=null ) rpr.addNewVertAlign().setVal(verticalAlign);/设置文本位置rpr.addNewPosition().setVal(new Biglnteger(String.v
40、alueOf(position);if (spacingValue !=0) /设置字符间距信息CTSignedTwipsMeasure ctSTwipsMeasure = rpr.addNewSpacing();ctSTwipsMeasure.setVal(new Biglnteger(String.valueOf(spacingValue);/设置字符间距缩进if (indent 0) CTTextScale paramCTTextScale = rpr.addNewW();paramCTTextScale.setVal(indent);ctr.setTArray(new CTText c
41、tText );cLink.setRArray(new CTR ctr );*/Word页眉页脚相关/* Description:页脚:显示页码信息*/throws Exception public void simpleNumberFooter(XWPFDocument document)CTP ctp = CTP.Factory.newlnstance();XWPFParagraph codePara =new XWPFParagraph(ctp, document);XWPFRun r1 = codePara.createRun();r1.setText(第);null ,微软雅黑,22
42、);setParagraphRunFontlnfo(codePara, r1.r1 = codePara.createRun();CTFldChar fldChar = r1.getCTR().addNewFldChar();fldChar.setFldCharType(STFIdCharType.BEGIN);r1 = codePara.createRun();CTText ctText = r1.getCTR().addNewlnstrText();ctText.setStringValue(PAGE * MERGEFORMAT);ctText.setSpace(SpaceAttribut
43、e.Space.PRESERVE);setParagraphRunFontlnfo(codePara, r1,null ,微软雅黑,22);fldChar = r1.getCTR().addNewFldChar();fldChar.setFldCharType(STFIdCharType.END);r1 = codePara.createRun();r1.setText( 页 总共”);setParagraphRunFontlnfo(codePara, r1,null ,微软雅黑 ”,22);r1 = codePara.createRun();fldChar = r1.getCTR().add
44、NewFldChar();fldChar.setFldCharType(STFIdCharType.BEGIN);r1 = codePara.createRun();ctText = r1.getCTR().addNewlnstrText();ctText.setStringValue(NUMPAGES * MERGEFORMAT );ctText.setSpace(SpaceAttribute.Space.PRESERVE);setParagraphRunFontlnfo(codePara, r1,null ,微软雅黑 ”,22);fldChar = r1.getCTR().addNewFl
45、dChar();fldChar.setFldCharType(STFIdCharType.END);r1 = codePara.createRun();r1.setText(页);setParagraphRunFontlnfo(codePara, r1,null ,微软雅黑 ”,22);setParagraphAlignlnfo(codePara, ParagraphAlignment.CENTER,TextAlignment.CENTER);codePara.setBorderTop(Borders.THICK);XWPFParagraph newparagraphs =new XWPFParagraph 1;newparagraphs 0 = codePara;CTSectPr sectPr = document.getDocument().getBody().addNewSectPr();XWPFHeaderFooterPolicy headerFooterPolicy =new XWPFHeade