Apache POI XWPF

 
 

Java API עבור Word OOXML מסמכים

פתרון קוד פתוח ליצירה, קריאה, עריכה והמרה של קובצי Microsoft Word DOCX ביישומי Java.

Apache POI XWPF מספק את הפונקציונליות לקריאה ולכתיבה של פורמט קובץ Microsoft Word 2007 DOCX. ל-XWPF יש API ליבה יציב למדי, המספק גישה לחלקים העיקריים של קובץ DOCX של Word. זה יכול לשמש לחילוץ טקסט בסיסי וספציפי, מניפולציה של כותרת עליונה וכותרת תחתונה, מניפולציה של טקסט ותכונות סגנון. 

Apache POI XWPF ידוע יותר ביצירת קבצי Microsoft Word ועריכת מסמכים, עיצוב טקסט ופסקאות, הכנסת תמונה, יצירה וניתוח של טבלאות, תכונות מיזוג דואר, ניהול רכיבי טופס ועוד.

Previous Next

תחילת העבודה עם Apache POI XWPF

קודם כל, עליך להתקין את ערכת הפיתוח של Java (JDK) במערכת שלך. אם כבר יש לך את זה, המשך לדף הורדה של Apache POI כדי לקבל את המהדורה היציבה האחרונה בארכיון. חלץ את התוכן של קובץ ה-ZIP בכל ספרייה שממנה ניתן לקשר את הספריות הנדרשות לתוכנית Java שלך. זה הכל!

הפניה ל-Apache POI בפרויקט Java המבוסס על Maven היא אפילו פשוטה יותר. כל מה שאתה צריך הוא להוסיף את התלות הבאה ב-pom.xml שלך ולתת ל-IDE שלך לאחזר ולהפנות את קבצי Apache POI Jar.

Apache POI Maven תלות

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
  <groupId>org.apache.poi</groupId>
  <artifactId>poi</artifactId>
  <version>4.1.0</version>
</dependency>

צור וערוך מסמכי Word באמצעות Java API

Apache POI XWPF מאפשר למתכנתי התוכנה ליצור מסמכי Word חדשים בפורמט קובץ DOCX. מפתחים יכולים גם לטעון קובץ Microsoft Word DOCX קיים כדי לערוך אותו בהתאם לצרכי היישום שלהם. זה מאפשר לך להוסיף פסקאות חדשות, להוסיף טקסט, להחיל יישור טקסט וגבולות, לשנות סגנון טקסט ועוד.

צור קובץ DOCX מאפס

// initialize a blank document
XWPFDocument document = new XWPFDocument();
// create a new file
FileOutputStream out = new FileOutputStream(new File("document.docx"));
// create a new paragraph paragraph
XWPFParagraph paragraph = document.createParagraph();
XWPFRun run = paragraph.createRun();
run.setText("File Format Developer Guide - " +
  "Learn about computer files that you come across in " +
  "your daily work at: www.fileformat.com ");
document.write(out);
out.close();

הוסף פסקה, תמונה וטבלה למסמכי Word

Apache POI XWPF מאפשר למפתחים להוסיף פסקאות ותמונות למסמכי Word. ה-API מספק גם את התכונה להוסיף טבלאות למסמכי DOCX, תוך שהוא מאפשר ליצור טבלאות פשוטות ומקוננות עם נתונים המוגדרים על ידי המשתמש.

צור קובץ DOCX חדש עם טבלה

// initialize a blank document
XWPFDocument document = new XWPFDocument();
// create a new file
FileOutputStream out = new FileOutputStream(new File("table.docx"));
// create a new table
XWPFTable table = document.createTable();
// create first row
XWPFTableRow tableRowOne = table.getRow(0);
tableRowOne.getCell(0).setText("Serial No");
tableRowOne.addNewTableCell().setText("Products");
tableRowOne.addNewTableCell().setText("Formats");
// create second row
XWPFTableRow tableRowTwo = table.createRow();
tableRowTwo.getCell(0).setText("1");
tableRowTwo.getCell(1).setText("Apache POI XWPF");
tableRowTwo.getCell(2).setText("DOCX, HTML, FO, TXT, PDF");
// create third row
XWPFTableRow tableRowThree = table.createRow();
tableRowThree.getCell(0).setText("2");
tableRowThree.getCell(1).setText("Apache POI HWPF");
tableRowThree.getCell(2).setText("DOC, HTML, FO, TXT");
document.write(out);
out.close();

חלץ טקסט ממסמך Word OOXML

Apache POI XWPF מספק את המחלקה המיוחדת לחילוץ נתונים ממסמכי Microsoft Word DOCX עם מספר שורות קוד בלבד. באותו אופן, הוא יכול גם לחלץ כותרות, הערות שוליים, נתוני טבלה וכן הלאה מקובץ וורד.

חלץ טקסט מקובץ וורד

// load DOCX file
FileInputStream fis = new FileInputStream("document.docx");
// open file
XWPFDocument file  = new XWPFDocument(OPCPackage.open(fis));
// read text
XWPFWordExtractor ext = new XWPFWordExtractor(file);
// display text
System.out.println(ext.getText());

הוסף כותרת עליונה ותחתונה מותאמות אישית למסמכי DOCX

כותרת עליונה ותחתונה הם חלק חשוב במסמך Word, שכן אלה מכילים בדרך כלל מידע נוסף כגון תאריכים, מספרי עמודים, שם המחבר והערות שוליים, המסייעים בשמירה על מסמכים ארוכים יותר מסודרים וקלים יותר לקריאה. Apache POI XWPF מאפשר למפתחי Java להוסיף כותרות עליונות ותחתונות מותאמות אישית למסמכי Word.

נהל כותרת עליונה ותחתונה מותאמות אישית בקובץ DOCX של Word


public class HeaderFooterTable {
  public static void main(String[] args) throws IOException {
    try (XWPFDocument doc = new XWPFDocument()) {
      // Create a header with a 1 row, 3 column table
      XWPFHeader hdr = doc.createHeader(HeaderFooterType.DEFAULT);
      XWPFTable tbl = hdr.createTable(1, 3);
      // Set the padding around text in the cells to 1/10th of an inch
      int pad = (int) (.1 * 1440);
      tbl.setCellMargins(pad, pad, pad, pad);
      // Set table width to 6.5 inches in 1440ths of a point
      tbl.setWidth((int) (6.5 * 1440));
      CTTbl ctTbl = tbl.getCTTbl();
      CTTblPr ctTblPr = ctTbl.addNewTblPr();
      CTTblLayoutType layoutType = ctTblPr.addNewTblLayout();
      layoutType.setType(STTblLayoutType.FIXED);
      BigInteger w = new BigInteger("3120");
      CTTblGrid grid = ctTbl.addNewTblGrid();
      for (int i = 0; i < 3; i++) {
        CTTblGridCol gridCol = grid.addNewGridCol();
        gridCol.setW(w);
      }
      // Add paragraphs to the cells
      XWPFTableRow row = tbl.getRow(0);
      XWPFTableCell cell = row.getCell(0);
      XWPFParagraph p = cell.getParagraphArray(0);
      XWPFRun r = p.createRun();
      r.setText("header left cell");
      cell = row.getCell(1);
      p = cell.getParagraphArray(0);
      r = p.createRun();
      r.setText("header center cell");
      cell = row.getCell(2);
      p = cell.getParagraphArray(0);
      r = p.createRun();
      r.setText("header right cell");
      // Create a footer with a Paragraph
      XWPFFooter ftr = doc.createFooter(HeaderFooterType.DEFAULT);
      p = ftr.createParagraph();
      r = p.createRun();
      r.setText("footer text");
      try (OutputStream os = new FileOutputStream(new File("headertable.docx"))) {
        doc.write(os);
      }
    }
  }
}
 עִברִית