1. Produktai
  2.   Tekstų apdorojimas
  3.   Java
  4.   Apache POI XWPF

Apache POI XWPF

 
 

Java API „Word OOXML dokumentams“.

Atvirojo kodo sprendimas, skirtas kurti, skaityti, redaguoti ir konvertuoti Microsoft Word DOCX failus Java programose.

„Apache POI XWPF“ suteikia galimybę skaityti ir rašyti „Microsoft Word 2007“ DOCX failo formatą. XWPF turi gana stabilią pagrindinę API, suteikiančią prieigą prie pagrindinių Word DOCX failo dalių. Jis gali būti naudojamas pagrindiniam ir konkrečiam tekstui išgauti, manipuliuoti antraštėmis ir poraštėmis, manipuliuoti tekstu ir stiliaus funkcijomis. 

„Apache POI XWPF“ yra labiau žinomas dėl „Microsoft Word“ failų generavimo ir dokumentų redagavimo, teksto ir pastraipų formatavimo, vaizdo įterpimo, lentelių kūrimo ir analizavimo, laiškų suliejimo funkcijų, formos elementų valdymo ir daug daugiau.

Previous Next

Darbo su Apache POI XWPF pradžia

Visų pirma, jūsų sistemoje turi būti įdiegtas „Java Development Kit“ (JDK). Jei jau turite, eikite į „Apache“ LV atsiuntimo puslapį, kad archyve gautumėte naujausią stabilią versiją. Išskleiskite ZIP failo turinį bet kuriame kataloge, iš kurio reikiamos bibliotekos gali būti susietos su jūsų Java programa. Tai viskas!

Nurodymas Apache POI jūsų Maven pagrįstame Java projekte yra dar paprasčiau. Viskas, ko jums reikia, tai pridėti toliau nurodytą priklausomybę į savo pom.xml ir leisti IDE gauti bei nurodyti Apache POI Jar failus.

Apache POI Maven priklausomybė

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

Kurkite ir redaguokite Word dokumentus naudodami Java API

Apache POI XWPF leidžia programuotojams kurti naujus Word dokumentus DOCX failo formatu. Kūrėjai taip pat gali įkelti esamą Microsoft Word DOCX failą ir redaguoti jį pagal savo taikomųjų programų poreikius. Tai leidžia pridėti naujų pastraipų, įterpti tekstą, pritaikyti teksto lygiavimą ir kraštines, keisti teksto stilių ir kt.

Sukurkite DOCX failą nuo nulio

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

Pridėti pastraipą, paveikslėlį ir lentelę prie Word dokumentų

„Apache POI XWPF“ leidžia kūrėjams pridėti pastraipų ir vaizdų prie „Word“ dokumentų. API taip pat suteikia lentelių pridėjimo prie DOCX dokumentų funkciją, leidžiančią kurti paprastas ir įdėtas lenteles su vartotojo nustatytais duomenimis.

Sukurkite naują DOCX failą su lentele

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

Ištraukite tekstą iš Word OOXML dokumento

„Apache POI XWPF“ suteikia specializuotą klasę, skirtą duomenims iš „Microsoft Word DOCX“ dokumentų išgauti naudojant tik kelias kodo eilutes. Lygiai taip pat jis gali iš „Word“ failo išgauti antraštes, išnašas, lentelės duomenis ir pan.

Ištraukite tekstą iš Word failo

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

Pridėkite tinkintą antraštę ir poraštę prie DOCX dokumentų

Antraštė ir poraštė yra svarbi Word dokumento dalis, nes jose paprastai yra papildomos informacijos, pvz., datos, puslapių numeriai, autoriaus vardas ir išnašos, kurios padeda tvarkyti ilgesnius dokumentus ir lengviau juos skaityti. „Apache POI XWPF“ leidžia „Java“ kūrėjams pridėti pasirinktines antraštes ir poraštes į „Word“ dokumentus.

Tvarkykite pasirinktinę antraštę ir poraštę Word DOCX faile


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);
      }
    }
  }
}
 Lietuvių