这三天一直在弄poi导出word的操做,终于出结果了,把代码粘上去供你们参考: app
public class SimpleDocument {
/**
* sd
*/
public static void main(String[] args) throws Exception {
XWPFDocument doc = new XWPFDocument();
XWPFParagraph p1 = doc.createParagraph();
XWPFTable table = doc.createTable(11, 2);
// 设置上下左右四个方向的距离,能够将表格撑大
table.setCellMargins(20, 20, 20, 20);
// table.set
List<XWPFTableCell> tableCells = table.getRow(0).getTableCells();
tableCells.get(0).setText("第一行第一列的数据");
tableCells.get(1).setText("第一行第二列的数据");
List<XWPFTableCell> tableCellsq = table.getRow(1).getTableCells();
tableCellsq.get(0).setText("第二行第二列的数据");
tableCellsq.get(1).setText("第二行第二列的数据");
// 设置字体对齐方式
p1.setAlignment(ParagraphAlignment.CENTER);
p1.setVerticalAlignment(TextAlignment.TOP);
// 第一页要使用p1所定义的属性
XWPFRun r1 = p1.createRun();
// 设置字体是否加粗
r1.setBold(true);
r1.setFontSize(20);
// 设置使用何种字体
r1.setFontFamily("Courier");
// 设置上下两行之间的间距
r1.setTextPosition(20);
r1.setText("公司招聘会入场须知");
// 设置我的信息
XWPFParagraph p2 = doc.createParagraph();
p2.setAlignment(ParagraphAlignment.LEFT);
XWPFRun r2 = p2.createRun();
r2.setTextPosition(15);
r2.setText("姓名" + " " + "张三");
r2.addCarriageReturn();
r2.setText("性别" + " " + "女");
r2.addCarriageReturn();
r2.setText("手机号" + " " + "12345678965");
r2.addCarriageReturn();
r2.setText("邮箱" + " " + "123@163.com");
r2.addCarriageReturn();
r2.setText("开始时间" + " " + "2013-05-28 12:30");
r2.addCarriageReturn();
r2.setText("结束时间" + " " + "2013-05-28 13:20");
r2.addCarriageReturn();
// 存放试题信息
XWPFParagraph p3 = doc.createParagraph();
p3.setWordWrap(true);
XWPFRun r3 = p3.createRun();
r3.setTextPosition(10);
r3.setFontSize(15);
r3.setText("1、选择题(共50分)");
// 题目和选项
XWPFParagraph p4 = doc.createParagraph();
p4.setWordWrap(true);
XWPFRun r4 = p4.createRun();
r4.setTextPosition(13);
r4.setText(" 一、下面说法正确的是?(3分)");
r4.addCarriageReturn();
r4.setText(" A:子类若是使用父类的方法必须使用super关键字");
r4.addCarriageReturn();
r4.setText(" B:子类若是使用父类的方法必须使用super关键字");
r4.addCarriageReturn();
r4.setText(" C:子类若是使用父类的方法必须使用super关键字");
r4.addCarriageReturn();
r4.setText(" D:子类若是使用父类的方法必须使用super关键字");
r4.addCarriageReturn();
r4.setText("正确答案:ABCD");
r4.setText("选择答案:AC");
// 判断题
XWPFParagraph p5 = doc.createParagraph();
p5.setWordWrap(true);
XWPFRun r5 = p5.createRun();
r5.setTextPosition(10);
r5.setFontSize(15);
r5.setText("1、判断题(共50分)");
XWPFParagraph p6 = doc.createParagraph();
p6.setWordWrap(true);
// 题目
int i;
for (i = 0; i < 5; i++) {
XWPFRun r6 = p6.createRun();
r6.setTextPosition(13);
r6.setText("一、子类若是使用父类的方法必须使用super关键字(5分)");
r6.addCarriageReturn();
r6.setText("正确答案:对");
r6.setText(" ");
r6.setSubscript(VerticalAlign.BASELINE);
r6.setText("选择答案:");
XWPFRun r7 = p6.createRun();
r7.setTextPosition(13);
// 控制某一个字体颜色为红色
if (i == 3) {
r7.setColor("FF0000");
}
r7.setText("错");
r7.addCarriageReturn();
}
FileOutputStream out = new FileOutputStream("E:\\simple.docx");
doc.write(out);
out.close();
System.out.println("success");
}
} 字体
public void exportWord() {
HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance()
.getExternalContext().getResponse();
response.setContentType("application/x-msdownloadoctet-stream;charset=utf-8");
try {
response.setHeader("Content-Disposition", "attachment;filename=\""
+ new String("simple.docx".getBytes(), "utf-8") + "\"");
OutputStream out = response.getOutputStream();
XWPFDocument doc = exportFormat();
doc.write(out);
out.flush();
out.close();
FacesContext.getCurrentInstance().responseComplete();
}
catch (Exception e) {
e.printStackTrace();
}
}定义上一个方法返回值为XWPFDocument orm
<h:commandLink>好使 ip
//设置字体是否倾斜
r4.setItalic(true);
// 是否在字体上面加线
// r3.setStrike(true);
// 设置是否分页
p3.setPageBreak(false);
//设置当前行日后缩多少才显示
p13.setIndentationFirstLine(100);
// 设置下划线属性
// r1.setUnderline(UnderlinePatterns.DOT_DOT_DASH); utf-8