1. Produkti
  2.   Tekstapstrāde
  3.   Java
  4.   Apache POI XWPF

Apache POI XWPF

 
 

Java API Word OOXML dokumentiem

Atvērtā pirmkoda risinājums Microsoft Word DOCX failu izveidei, lasīšanai, rediģēšanai un konvertēšanai Java lietojumprogrammās.

Apache POI XWPF nodrošina Microsoft Word 2007 DOCX faila formāta lasīšanas un rakstīšanas funkcionalitāti. XWPF ir diezgan stabils pamata API, kas nodrošina piekļuvi galvenajām Word DOCX faila daļām. To var izmantot pamata un specifiska teksta izvilkšanai, manipulācijām ar galveni un kājeni, teksta manipulācijām un stila funkcijām. 

Apache POI XWPF ir vairāk pazīstams ar Microsoft Word failu ģenerēšanu un dokumentu rediģēšanu, teksta un rindkopu formatēšanu, attēlu ievietošanu, tabulu izveidi un parsēšanu, pasta sapludināšanas funkcijām, veidlapas elementu pārvaldību un daudz ko citu.

Previous Next

Darba sākšana ar Apache POI XWPF

Pirmkārt, jūsu sistēmā ir jābūt instalētam Java izstrādes komplektam (JDK). Ja jums tas jau ir, dodieties uz Apache POI lejupielādes lapu, lai arhīvā iegūtu jaunāko stabilo versiju. Izvelciet ZIP faila saturu jebkurā direktorijā, no kuras vajadzīgās bibliotēkas var saistīt ar jūsu Java programmu. Tas ir viss!

Atsauces uz Apache POI jūsu Maven balstītajā Java projektā ir vēl vienkāršāk. Viss, kas jums nepieciešams, ir pievienot tālāk norādīto atkarību savā pom.xml un ļaut IDE ielādēt un atsaukties uz Apache POI Jar failus.

Apache POI Maven atkarība

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

Ģenerējiet un rediģējiet Word dokumentus, izmantojot Java API

Apache POI XWPF ļauj programmatūras programmētājiem izveidot jaunus Word dokumentus DOCX faila formātā. Izstrādātāji var arī ielādēt esošu Microsoft Word DOCX failu, lai to rediģētu atbilstoši savām lietojumprogrammu vajadzībām. Tas ļauj pievienot jaunas rindkopas, ievietot tekstu, lietot teksta līdzinājumu un apmales, mainīt teksta stilu un veikt citas darbības.

Ģenerējiet DOCX failu no jauna

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

Pievienojiet Word dokumentiem rindkopu, attēlu un tabulu

Apache POI XWPF ļauj izstrādātājiem Word dokumentiem pievienot rindkopas un attēlus. API nodrošina arī iespēju pievienot tabulas DOCX dokumentiem, vienlaikus ļaujot izveidot vienkāršas un ligzdotas tabulas ar lietotāja definētiem datiem.

Izveidojiet jaunu DOCX failu ar tabulu

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

Izvilkt tekstu no Word OOXML dokumenta

Apache POI XWPF nodrošina specializētu klasi, lai iegūtu datus no Microsoft Word DOCX dokumentiem, izmantojot tikai dažas koda rindiņas. Tādā pašā veidā tas var arī iegūt virsrakstus, zemsvītras piezīmes, tabulas datus un tā tālāk no Word faila.

Izvilkt tekstu no Word faila

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

Pievienojiet pielāgotu galveni un kājeni DOCX dokumentiem

Galvene un kājene ir svarīga Word dokumenta daļa, jo tie parasti satur papildu informāciju, piemēram, datumus, lappušu numurus, autora vārdu un zemsvītras piezīmes, kas palīdz uzturēt garākus dokumentus sakārtotus un vieglāk lasāmus. Apache POI XWPF ļauj Java izstrādātājiem Word dokumentiem pievienot pielāgotas galvenes un kājenes.

Pārvaldiet pielāgoto galveni un kājeni Word DOCX failā


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