poi-3.8生成word文档

来源:互联网 发布:linux系统打开命令窗口 编辑:程序博客网 时间:2024/05/29 03:36

项目中需要生成word文档,于是在网上找出一些例子,但遇到问题不少,首先就jar包来说,一般我们操作下载excel文档,只需要一个poi-3.8-20120326.jar就足矣,然而当需要操作到word时候就需要poi-ooxml-3.8-20120326.jar,poi-scratchpad-3.8-20120326.jar,poi-ooxml-schemas-3.8-20120326.jar这个了,用这个我们可以建

XWPFDocument doc = new XWPFDocument(); 这样一个类,但是此处依然会报错,

java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlException

才发现我们还是少了jar包,这里我们需要用到xmlbeans-2.3.0.jar,这个jar包poi本身不提供的,需要我们去下载,

从别处扣来的一个生产word文档的demo,如下:

import java.io.FileOutputStream;import org.apache.poi.xwpf.usermodel.Borders;import org.apache.poi.xwpf.usermodel.BreakClear;import org.apache.poi.xwpf.usermodel.BreakType;import org.apache.poi.xwpf.usermodel.LineSpacingRule;import org.apache.poi.xwpf.usermodel.ParagraphAlignment;import org.apache.poi.xwpf.usermodel.TextAlignment;import org.apache.poi.xwpf.usermodel.UnderlinePatterns;import org.apache.poi.xwpf.usermodel.VerticalAlign;import org.apache.poi.xwpf.usermodel.XWPFDocument;import org.apache.poi.xwpf.usermodel.XWPFParagraph;import org.apache.poi.xwpf.usermodel.XWPFRun;public class WordTest {public static void main(String[] args) throws Exception {          XWPFDocument doc = new XWPFDocument();            XWPFParagraph p1 = doc.createParagraph();          p1.setAlignment(ParagraphAlignment.CENTER);          p1.setBorderBottom(Borders.DOUBLE);          p1.setBorderTop(Borders.DOUBLE);            p1.setBorderRight(Borders.DOUBLE);          p1.setBorderLeft(Borders.DOUBLE);          p1.setBorderBetween(Borders.SINGLE);            p1.setVerticalAlignment(TextAlignment.TOP);            XWPFRun r1 = p1.createRun();          r1.setBold(true);          r1.setText("The quick brown fox");          r1.setBold(true);          r1.setFontFamily("Courier");          r1.setUnderline(UnderlinePatterns.DOT_DOT_DASH);          r1.setTextPosition(100);            XWPFParagraph p2 = doc.createParagraph();          p2.setAlignment(ParagraphAlignment.RIGHT);            //BORDERS          p2.setBorderBottom(Borders.DOUBLE);          p2.setBorderTop(Borders.DOUBLE);          p2.setBorderRight(Borders.DOUBLE);          p2.setBorderLeft(Borders.DOUBLE);          p2.setBorderBetween(Borders.SINGLE);            XWPFRun r2 = p2.createRun();          r2.setText("jumped over the lazy dog");          r2.setStrike(true);          r2.setFontSize(20);            XWPFRun r3 = p2.createRun();          r3.setText("and went away");          r3.setStrike(true);          r3.setFontSize(20);          r3.setSubscript(VerticalAlign.SUPERSCRIPT);              XWPFParagraph p3 = doc.createParagraph();          p3.setWordWrap(true);          p3.setPageBreak(true);                            //p3.setAlignment(ParagraphAlignment.DISTRIBUTE);          p3.setAlignment(ParagraphAlignment.BOTH);          p3.setSpacingLineRule(LineSpacingRule.EXACT);            p3.setIndentationFirstLine(600);                      XWPFRun r4 = p3.createRun();          r4.setTextPosition(20);          r4.setText("To be, or not to be: that is the question: "                  + "Whether 'tis nobler in the mind to suffer "                  + "The slings and arrows of outrageous fortune, "                  + "Or to take arms against a sea of troubles, "                  + "And by opposing end them? To die: to sleep; ");          r4.addBreak(BreakType.PAGE);          r4.setText("No more; and by a sleep to say we end "                  + "The heart-ache and the thousand natural shocks "                  + "That flesh is heir to, 'tis a consummation "                  + "Devoutly to be wish'd. To die, to sleep; "                  + "To sleep: perchance to dream: ay, there's the rub; "                  + ".......");          r4.setItalic(true);  //This would imply that this break shall be treated as a simple line break, and break the line after that word:            XWPFRun r5 = p3.createRun();          r5.setTextPosition(-10);          r5.setText("For in that sleep of death what dreams may come");          r5.addCarriageReturn();          r5.setText("When we have shuffled off this mortal coil,"                  + "Must give us pause: there's the respect"                  + "That makes calamity of so long life;");          r5.addBreak();          r5.setText("For who would bear the whips and scorns of time,"                  + "The oppressor's wrong, the proud man's contumely,");                    r5.addBreak(BreakClear.ALL);          r5.setText("The pangs of despised love, the law's delay,"                  + "The insolence of office and the spurns" + ".......");            FileOutputStream out = new FileOutputStream("simple.docx");          doc.write(out);          out.close();        }  }


0 0
原创粉丝点击