1. Tuotteet
  2.   Tekstinkäsittely
  3.   Java
  4.   Apache POI XWPF

Apache POI XWPF

 
 

Java API Word OOXML asiakirjoille

Avoimen lähdekoodin ratkaisu Microsoft Word DOCX -tiedostojen luomiseen, lukemiseen, muokkaamiseen ja muuntamiseen Java-sovelluksissa.

Apache POI XWPF tarjoaa toiminnot Microsoft Word 2007 DOCX -tiedostomuodon lukemiseen ja kirjoittamiseen. XWPF:llä on melko vakaa ydinsovellusliittymä, joka tarjoaa pääsyn Word DOCX -tiedoston pääosiin. Sitä voidaan käyttää perus- ja erityistekstin poimimiseen, ylä- ja alatunnisteen manipulointiin, tekstin käsittelyyn ja tyyliominaisuuksiin. 

Apache POI XWPF tunnetaan paremmin Microsoft Word -tiedostojen luomisesta ja asiakirjojen muokkaamisesta, tekstin ja kappaleiden muotoilusta, kuvien lisäyksestä, taulukon luomisesta ja jäsentämisestä, yhdistämisominaisuuksista, lomakeelementtien hallinnasta ja paljon muuta.

Previous Next

Apache POI XWPF:n käytön aloittaminen

Ensinnäkin, sinun on oltava Java Development Kit (JDK) asennettuna järjestelmääsi. Jos sinulla on jo se, siirry Apache POI:n lataussivulle saadaksesi uusimman vakaan julkaisun arkistona. Pura ZIP-tiedoston sisältö missä tahansa hakemistossa, josta tarvittavat kirjastot voidaan linkittää Java-ohjelmaasi. Siinä kaikki!

Apache POI:iin viittaaminen Maven-pohjaisessa Java-projektissa on vielä yksinkertaisempaa. Sinun tarvitsee vain lisätä seuraava riippuvuus pom.xml-tiedostoosi ja antaa IDE:n hakea ja viitata Apache POI Jar -tiedostoihin.

Apache POI Maven -riippuvuus

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

Luo ja muokkaa Word-asiakirjoja Java API:n avulla

Apache POI XWPF antaa ohjelmoijille mahdollisuuden luoda uusia Word-asiakirjoja DOCX-tiedostomuodossa. Kehittäjät voivat myös ladata olemassa olevan Microsoft Word DOCX -tiedoston muokatakseen sitä sovellustarpeidensa mukaan. Sen avulla voit lisätä uusia kappaleita, lisätä tekstiä, soveltaa tekstin tasausta ja reunuksia, muuttaa tekstin tyyliä ja paljon muuta.

Luo DOCX-tiedosto tyhjästä

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

Lisää kappale, kuva ja taulukko Word-asiakirjoihin

Apache POI XWPF:n avulla kehittäjät voivat lisätä kappaleita ja kuvia Word-asiakirjoihin. API tarjoaa myös ominaisuuden lisätä taulukoita DOCX-dokumentteihin ja mahdollistaa yksinkertaisten ja sisäkkäisten taulukoiden luomisen käyttäjän määrittämillä tiedoilla.

Luo uusi DOCX-tiedosto ja taulukko

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

Pura teksti Word OOXML -asiakirjasta

Apache POI XWPF tarjoaa erikoisluokan tietojen poimimiseen Microsoft Word DOCX -asiakirjoista vain muutamalla koodirivillä. Samalla tavalla se voi myös poimia otsikoita, alaviitteitä, taulukkotietoja ja niin edelleen Word-tiedostosta.

Pura teksti Word-tiedostosta

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

Lisää mukautettu ylä- ja alatunniste DOCX-asiakirjoihin

Ylä- ja alatunniste ovat tärkeä osa Word-asiakirjaa, koska ne sisältävät yleensä lisätietoa, kuten päivämäärät, sivunumerot, tekijän nimen ja alaviitteet, jotka auttavat pitämään pidemmät asiakirjat järjestyksessä ja helpommin luettavissa. Apache POI XWPF:n avulla Java-kehittäjät voivat lisätä mukautettuja ylä- ja alatunnisteita Word-asiakirjoihin.

Hallitse mukautettua ylä- ja alatunnistetta Wordin DOCX-tiedostossa


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