1. Termékek
  2.   Szövegszerkesztés
  3.   Java
  4.   Apache POI XWPF

Apache POI XWPF

 
 

Java API Word OOXML dokumentumokhoz

Nyílt forráskódú megoldás Microsoft Word DOCX-fájlok létrehozására, olvasására, szerkesztésére és konvertálására Java alkalmazásokban.

Az Apache POI XWPF biztosítja a Microsoft Word 2007 DOCX fájlformátum olvasásának és írásának funkcióját. Az XWPF egy meglehetősen stabil alap API-val rendelkezik, amely hozzáférést biztosít a Word DOCX fájl fő részeihez. Használható alapvető és specifikus szövegkivonásra, a fejléc és lábléc manipulálására, valamint a szövegkezelési és stílusfunkciókra. 

Az Apache POI XWPF ismertebb a Microsoft Word fájlgenerálásról és dokumentumszerkesztésről, a szövegek és bekezdések formázásáról, képbeszúrásról, táblázatkészítésről és elemzésről, a körlevél funkcióiról, az űrlapelemek kezeléséről és még sok másról.

Previous Next

Az Apache POI XWPF használatának megkezdése

Először is telepítenie kell a Java Development Kit-et (JDK) a rendszerére. Ha már rendelkezik vele, lépjen az Apache POI letöltési oldalára, hogy a legújabb stabil kiadást egy archívumban kapja meg. Csomagolja ki a ZIP fájl tartalmát bármely olyan könyvtárból, ahonnan a szükséges könyvtárak a Java programhoz kapcsolhatók. Ez minden!

Az Apache POI hivatkozás a Maven-alapú Java projektben még egyszerűbb. Mindössze annyit kell tennie, hogy hozzáadja a következő függőséget a pom.xml fájlhoz, és hagyja, hogy az IDE letöltse és hivatkozzon az Apache POI Jar fájlokra.

Apache POI Maven függőség

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

Word dokumentumok létrehozása és szerkesztése Java API használatával

Az Apache POI XWPF lehetővé teszi a szoftverprogramozók számára, hogy új Word dokumentumokat hozzanak létre DOCX fájlformátumban. A fejlesztők egy meglévő Microsoft Word DOCX fájlt is betölthetnek, hogy alkalmazási igényeiknek megfelelően szerkeszthessék. Lehetővé teszi új bekezdések hozzáadását, szöveg beszúrását, szövegigazítás és szegélyek alkalmazását, szövegstílus módosítását stb.

Hozzon létre egy DOCX fájlt a semmiből

// 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();

Bekezdés, kép és táblázat hozzáadása a Word dokumentumokhoz

Az Apache POI XWPF lehetővé teszi a fejlesztők számára, hogy bekezdéseket és képeket adjanak a Word-dokumentumokhoz. Az API lehetőséget biztosít arra is, hogy táblázatokat adjon hozzá a DOCX-dokumentumokhoz, miközben lehetővé teszi egyszerű és beágyazott táblázatok létrehozását a felhasználó által definiált adatokkal.

Hozzon létre egy új DOCX-fájlt egy táblázattal

// 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();

Szöveg kibontása a Word OOXML dokumentumból

Az Apache POI XWPF speciális osztályt biztosít a Microsoft Word DOCX dokumentumokból mindössze néhány sornyi kóddal. Ugyanígy ki tudja bontani a címsorokat, lábjegyzeteket, táblázatadatokat és így tovább egy Word-fájlból.

Szöveg kibontása Word fájlból

// 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());

Adjon hozzá egyéni fejlécet és láblécet a DOCX-dokumentumokhoz

A fejléc és a lábléc a Word-dokumentum fontos részét képezi, mivel ezek általában olyan kiegészítő információkat tartalmaznak, mint a dátumok, oldalszámok, a szerző neve és lábjegyzetek, amelyek segítenek a hosszabb dokumentumok rendszerezésében és könnyebben olvashatóságában. Az Apache POI XWPF lehetővé teszi a Java fejlesztők számára, hogy egyéni fejléceket és lábléceket adjanak a Word dokumentumokhoz.

Egyéni fejléc és lábléc kezelése Word DOCX fájlban


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);
      }
    }
  }
}
 Magyar