poi導出word操做

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

相關文章
相關標籤/搜索