Apache POI XWPF
Word OOXML Belgeleri için Java API
Java uygulamalarında Microsoft Word DOCX dosyalarını Oluşturmak, Okumak, Düzenlemek ve Dönüştürmek için Açık Kaynak çözümü.
Apache POI XWPF, Microsoft Word 2007 DOCX dosya biçimini okuma ve yazma işlevselliği sağlar. XWPF, bir Word DOCX dosyasının ana bölümlerine erişim sağlayan oldukça kararlı bir çekirdek API'ye sahiptir. Temel ve belirli metin çıkarma, üstbilgi ve altbilgi manipülasyonu, metin işleme ve stil özellikleri için kullanılabilir.
Apache POI XWPF, Microsoft Word dosya oluşturma ve belge düzenleme, metin ve paragraf biçimlendirme, görüntü ekleme, tablo oluşturma ve ayrıştırma, adres mektup birleştirme özellikleri, form öğelerinin yönetimi ve çok daha fazlasıyla tanınır.
Apache POI XWPF'ye Başlarken
Öncelikle sisteminizde Java Development Kit (JDK) kurulu olmalıdır. Zaten sahipseniz, bir arşivdeki en son kararlı sürümü almak için Apache POI'nin indirme sayfasına gidin. ZIP dosyasının içeriğini, gerekli kitaplıkların Java programınıza bağlanabileceği herhangi bir dizine çıkarın. Hepsi bu!
Maven tabanlı Java projenizde Apache POI'ye başvurmak daha da basittir. Tek ihtiyacınız olan, pom.xml dosyanıza aşağıdaki bağımlılığı eklemek ve IDE'nizin Apache POI Jar dosyalarını almasına ve referans vermesine izin vermektir.
Apache POI Maven Bağımlılığı
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.0</version>
</dependency>
Java API kullanarak Word Belgeleri Oluşturun ve Düzenleyin
Apache POI XWPF, yazılım programcılarının DOCX dosya formatında yeni Word Belgeleri oluşturmasını sağlar. Geliştiriciler, uygulama ihtiyaçlarına göre düzenlemek için mevcut bir Microsoft Word DOCX dosyasını da yükleyebilir. Yeni paragraflar eklemenize, metin eklemenize, metin hizalama ve kenarlıklar uygulamanıza, metin stilini değiştirmenize ve daha pek çok şeye olanak tanır.
Sıfırdan bir DOCX dosyası oluşturun
// 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();
Word Belgelerine Paragraf, Resim ve Tablo Ekleme
Apache POI XWPF, geliştiricilerin Word belgelerine paragraflar ve resimler eklemesine olanak tanır. API, kullanıcı tanımlı verilerle basit ve iç içe geçmiş tablolar oluşturmayı mümkün kılarken DOCX belgelerine tablo ekleme özelliğini de sağlar.
Tablo içeren yeni bir DOCX dosyası oluşturun
// 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();
Word OOXML Belgesinden Metin Çıkarma
Apache POI XWPF, Microsoft Word DOCX belgelerinden yalnızca birkaç satır kodla veri çıkarmak için özel sınıf sağlar. Aynı şekilde, bir Word dosyasından başlıkları, dipnotları, tablo verilerini vb. çıkarabilir.
Word dosyasından metin ayıklayın
// 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());
DOCX Belgelerine Özel Üstbilgi ve Altbilgi Ekleme
Üstbilgi ve altbilgi, genellikle tarihler, sayfa numaraları, yazarın adı ve dipnotlar gibi daha uzun belgeleri organize etmeye ve daha kolay okunmasına yardımcı olan ek bilgileri içerdiğinden, Word belgesinin önemli bir parçasıdır. Apache POI XWPF, Java geliştiricilerinin Word belgelerine özel üstbilgi ve altbilgi eklemesine olanak tanır.
Word DOCX Dosyasında Özel Üstbilgi ve Altbilgiyi Yönetin
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);
}
}
}
}