1. Produk
  2.   Pemprosesan perkataan
  3.   Java
  4.   Apache POI XWPF

Apache POI XWPF

 
 

Java API untuk Word OOXML Dokumen

Penyelesaian Sumber Terbuka untuk Mencipta, Membaca, Mengedit dan Menukar fail Microsoft Word DOCX dalam aplikasi Java.

Apache POI XWPF menyediakan kefungsian untuk membaca & menulis format fail Microsoft Word 2007 DOCX. XWPF mempunyai API teras yang agak stabil, menyediakan akses kepada bahagian utama fail Word DOCX. Ia boleh digunakan untuk pengekstrakan teks asas & khusus, manipulasi pengepala & pengaki, manipulasi teks & ciri penggayaan. 

Apache POI XWPF lebih terkenal dengan penjanaan fail & penyuntingan dokumen Microsoft Word, pemformatan teks & perenggan, sisipan imej, penciptaan jadual & penghuraian, ciri gabungan mel, pengurusan elemen borang dan banyak lagi.

Previous Next

Bermula dengan Apache POI XWPF

Pertama sekali, anda perlu memasang Java Development Kit (JDK) pada sistem anda. Jika anda sudah memilikinya, teruskan ke halaman muat turun Apache POI untuk mendapatkan keluaran stabil terkini dalam arkib. Ekstrak kandungan fail ZIP dalam mana-mana direktori dari mana perpustakaan yang diperlukan boleh dipautkan ke program Java anda. Itu sahaja!

Merujuk Apache POI dalam projek Java berasaskan Maven anda adalah lebih mudah. Apa yang anda perlukan ialah menambah kebergantungan berikut dalam pom.xml anda dan biarkan IDE anda mengambil dan merujuk fail Apache POI Jar.

Ketergantungan Maven Apache POI

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

Jana & Edit Dokumen Word menggunakan API Java

Apache POI XWPF membolehkan pengaturcara perisian mencipta Dokumen Word baharu dalam format fail DOCX. Pembangun juga boleh memuatkan fail Microsoft Word DOCX sedia ada untuk mengeditnya mengikut keperluan aplikasi mereka. Ia membolehkan anda menambah perenggan baharu, memasukkan teks, menggunakan penjajaran & jidar teks, menukar penggayaan teks dan banyak lagi.

Hasilkan fail DOCX dari awal

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

Tambahkan Perenggan, Imej & Jadual pada Dokumen Word

Apache POI XWPF membolehkan pembangun menambahkan perenggan & imej pada dokumen Word. API juga menyediakan ciri untuk menambahkan jadual pada dokumen DOCX sambil membolehkan anda membuat jadual mudah dan bersarang dengan data yang ditentukan pengguna.

Buat fail DOCX baharu dengan jadual

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

Ekstrak Teks daripada Dokumen Word OOXML

Apache POI XWPF menyediakan kelas khusus untuk mengekstrak data daripada dokumen Microsoft Word DOCX dengan hanya beberapa baris kod. Dengan cara yang sama, ia juga boleh mengekstrak tajuk, nota kaki, data jadual dan sebagainya daripada fail Word.

Ekstrak teks daripada fail Word

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

Tambahkan Pengepala & Pengaki Tersuai pada Dokumen DOCX

Pengepala dan pengaki ialah bahagian penting dalam dokumen Word kerana ia biasanya mengandungi maklumat tambahan seperti tarikh, nombor halaman, nama pengarang dan nota kaki, yang membantu dalam memastikan dokumen yang lebih panjang teratur dan lebih mudah dibaca. Apache POI XWPF membenarkan pembangun Java menambah pengepala dan pengaki tersuai pada dokumen Word.

Urus Pengepala & Pengaki Tersuai dalam Fail 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);
      }
    }
  }
}
 Melayu