Apache POI XWPF

 
 

Word OOXML ডকুমেন্টের জন্য Java API

জাভা অ্যাপ্লিকেশনগুলিতে Microsoft Word DOCX ফাইলগুলি তৈরি, পড়তে, সম্পাদনা এবং রূপান্তর করার জন্য ওপেন সোর্স সমাধান।

Apache POI XWPF মাইক্রোসফ্ট ওয়ার্ড 2007 DOCX ফাইল ফর্ম্যাট পড়তে এবং লেখার কার্যকারিতা প্রদান করে। XWPF এর একটি মোটামুটি স্থিতিশীল কোর API রয়েছে, যা একটি Word DOCX ফাইলের প্রধান অংশগুলিতে অ্যাক্সেস প্রদান করে। এটি মৌলিক এবং নির্দিষ্ট টেক্সট এক্সট্রাকশন, হেডার ও ফুটার ম্যানিপুলেশন, টেক্সট ম্যানিপুলেশন এবং স্টাইলিং ফিচারের জন্য ব্যবহার করা যেতে পারে। 

Apache POI XWPF মাইক্রোসফ্ট ওয়ার্ড ফাইল জেনারেশন এবং ডকুমেন্ট এডিটিং, টেক্সট ও প্যারাগ্রাফ ফরম্যাটিং, ইমেজ ইনসারশন, টেবিল তৈরি এবং পার্সিং, মেল মার্জ ফিচার, ফর্ম এলিমেন্ট পরিচালনা এবং আরও অনেক কিছুর জন্য বিখ্যাত।

Previous Next

Apache POI XWPF দিয়ে শুরু করা

প্রথমত, আপনার সিস্টেমে জাভা ডেভেলপমেন্ট কিট (JDK) ইনস্টল করা দরকার। যদি আপনার কাছে এটি ইতিমধ্যেই থাকে তবে একটি সংরক্ষণাগারে সর্বশেষ স্থিতিশীল প্রকাশ পেতে Apache POI এর ডাউনলোড পৃষ্ঠাতে যান৷ যেকোন ডিরেক্টরিতে জিপ ফাইলের বিষয়বস্তু বের করুন যেখান থেকে প্রয়োজনীয় লাইব্রেরিগুলি আপনার জাভা প্রোগ্রামের সাথে লিঙ্ক করা যেতে পারে। যে সব!

আপনার Maven-ভিত্তিক জাভা প্রকল্পে Apache POI উল্লেখ করা আরও সহজ। আপনার যা দরকার তা হল আপনার pom.xml-এ নিম্নলিখিত নির্ভরতা যোগ করুন এবং আপনার IDE-কে Apache POI Jar ফাইলগুলি আনতে এবং উল্লেখ করতে দিন।

Apache POI Maven নির্ভরতা

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

জাভা API ব্যবহার করে ওয়ার্ড ডকুমেন্ট তৈরি ও সম্পাদনা করুন

Apache POI XWPF সফটওয়্যার প্রোগ্রামারদের DOCX ফাইল ফরম্যাটে নতুন ওয়ার্ড ডকুমেন্ট তৈরি করতে সক্ষম করে। বিকাশকারীরা তাদের অ্যাপ্লিকেশনের প্রয়োজন অনুসারে এটি সম্পাদনা করতে একটি বিদ্যমান Microsoft Word DOCX ফাইল লোড করতে পারে। এটি আপনাকে নতুন অনুচ্ছেদ যোগ করতে, পাঠ্য সন্নিবেশ করতে, পাঠ্য সারিবদ্ধকরণ এবং সীমানা প্রয়োগ করতে, পাঠ্যের স্টাইল পরিবর্তন করতে এবং আরও অনেক কিছু করতে দেয়।

স্ক্র্যাচ থেকে একটি DOCX ফাইল তৈরি করুন

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

ওয়ার্ড ডকুমেন্টে অনুচ্ছেদ, ছবি এবং টেবিল যোগ করুন

Apache POI XWPF ডেভেলপারদের Word নথিতে অনুচ্ছেদ এবং ছবি যোগ করার অনুমতি দেয়। ব্যবহারকারী-সংজ্ঞায়িত ডেটা সহ সাধারণ ও নেস্টেড টেবিল তৈরি করা সম্ভব করার সময় API DOCX নথিতে টেবিল যোগ করার বৈশিষ্ট্যও প্রদান করে।

একটি টেবিলের সাথে একটি নতুন DOCX ফাইল তৈরি করুন

// 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 ডকুমেন্ট থেকে পাঠ্য বের করুন

Apache POI XWPF শুধুমাত্র কয়েক লাইন কোড সহ Microsoft Word DOCX নথি থেকে ডেটা বের করার জন্য বিশেষায়িত ক্লাস প্রদান করে। একইভাবে, এটি একটি 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());

DOCX নথিতে কাস্টম হেডার এবং ফুটার যোগ করুন

হেডার এবং ফুটার হল Word নথির একটি গুরুত্বপূর্ণ অংশ কারণ এতে সাধারণত অতিরিক্ত তথ্য থাকে যেমন তারিখ, পৃষ্ঠা নম্বর, লেখকের নাম এবং পাদটীকা, যা দীর্ঘ নথিগুলিকে সংগঠিত রাখতে এবং সহজে পড়তে সাহায্য করে। Apache POI XWPF জাভা ডেভেলপারদের Word নথিতে কাস্টম হেডার এবং ফুটার যোগ করতে দেয়।

Word DOCX ফাইলে কাস্টম হেডার এবং ফুটার পরিচালনা করুন


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);
      }
    }
  }
}
 বাংলা