添加maven依赖:
<!-- poi --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.17-beta1</version> </dependency> <!-- fast json --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.31</version> </dependency>
主要代码:
//创建doc 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.setText("The quick brown fox"); //加粗 r1.setBold(true); //字体 r1.setFontFamily("Courier"); //点状下划线 r1.setUnderline(UnderlinePatterns.DOT_DOT_DASH); //行文字基线向上偏移100 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.setStrikeThrough(true); r2.setFontSize(20); XWPFRun r3 = p2.createRun(); r3.setText("and went away"); r3.setStrikeThrough(true); r3.setFontSize(20); //行内文本上标 r3.setSubscript(VerticalAlign.SUPERSCRIPT); XWPFParagraph p3 = doc.createParagraph(); //段落结束 p3.setWordWrapped(true); //分页符 p3.setPageBreak(true); //p3.setAlignment(ParagraphAlignment.DISTRIBUTE); //两端对齐 p3.setAlignment(ParagraphAlignment.BOTH); //设置行间距。指定行高15磅,文字超过行高,进行裁剪 p3.setSpacingBetween(15, LineSpacingRule.EXACT); //首行缩进600 p3.setIndentationFirstLine(600); XWPFRun r4 = p3.createRun(); //行文字基线向上偏移20 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; "); //添加一个分页符(跳到下一页)。TEXT_WRAPPING:换行,COLUMN:换下一列 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(); //行文字基线向下偏移10 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(); doc.close();
这些是主要代码,因为匆忙,比较简陋,大家见谅!