這三天一直在弄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