Apache POI হলো একটি ওপেন সোর্স লাইব্রেরি যা Java প্রোগ্রামিং ভাষায় তৈরি করা হয়েছে এবং এটি Microsoft Office ফাইল (যেমন Excel, Word, PowerPoint) পরিচালনা করার জন্য ব্যবহৃত হয়। বিশেষভাবে, Apache POI HWPF (Horrible Word Processor Format) এবং XWPF (XML Word Processing Format) নামক দুটি উপ-প্যাকেজের মাধ্যমে Word ডকুমেন্ট তৈরি, পড়া এবং সম্পাদনা করার ক্ষমতা প্রদান করে।
Apache POI হলো একটি ওপেন-সোর্স Java লাইব্রেরি, যা Microsoft Office ফাইল ফরম্যাট (যেমন Word, Excel, PowerPoint ইত্যাদি) ম্যানিপুলেট করতে ব্যবহৃত হয়। Apache POI আপনাকে Java এর মাধ্যমে Microsoft Word ফাইল (যেমন .docx ফাইল) তৈরি, সম্পাদনা এবং পড়ার সুযোগ দেয়।
Apache POI-র XWPF (XML Word Processing Format) API ব্যবহার করে আপনি DOCX ফরম্যাটে Word ডকুমেন্ট তৈরি, সম্পাদনা এবং প্রক্রিয়াকরণ করতে পারবেন। XWPF মূলত Microsoft Office Open XML ফরম্যাটের সাথে কাজ করে, যা DOCX ফাইল ফরম্যাটের জন্য ব্যবহার করা হয়।
ধাপ ১: Maven ডিপেন্ডেন্সি যোগ করা
Apache POI ব্যবহার করার জন্য আপনাকে Maven এর মাধ্যমে প্রয়োজনীয় ডিপেন্ডেন্সি যোগ করতে হবে। pom.xml
ফাইলে নিচের ডিপেন্ডেন্সিগুলো যোগ করুন:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>5.1.1</version>
</dependency>
ধাপ ২: একটি নতুন Word ফাইল তৈরি করা
Apache POI ব্যবহার করে DOCX ফরম্যাটে একটি নতুন Word ডকুমেন্ট তৈরি করা খুবই সহজ। নিচে একটি উদাহরণ দেওয়া হলো, যেখানে আমরা একটি নতুন Word ডকুমেন্ট তৈরি করছি এবং তাতে কিছু টেক্সট লিখছি:
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import java.io.FileOutputStream;
import java.io.IOException;
public class CreateWordExample {
public static void main(String[] args) {
// একটি নতুন ডকুমেন্ট তৈরি করা
XWPFDocument document = new XWPFDocument();
// একটি নতুন প্যারাগ্রাফ তৈরি করা
XWPFParagraph paragraph = document.createParagraph();
XWPFRun run = paragraph.createRun();
run.setText("এটি একটি উদাহরণস্বরূপ Word ডকুমেন্ট।");
run.setBold(true); // বোল্ড টেক্সট
// ডকুমেন্টকে ফাইলে সেভ করা
try (FileOutputStream out = new FileOutputStream("example.docx")) {
document.write(out);
System.out.println("Word ডকুমেন্ট সফলভাবে তৈরি হয়েছে!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
উপরের কোডে, আমরা XWPFDocument ব্যবহার করে একটি নতুন Word ডকুমেন্ট তৈরি করেছি এবং একটি প্যারাগ্রাফ লিখেছি, যেখানে টেক্সট বোল্ড করা হয়েছে। এই ডকুমেন্টটি example.docx নামে সেভ করা হবে।
ধাপ ৩: একটি বিদ্যমান Word ফাইল থেকে ডেটা পড়া
Apache POI দিয়ে আপনি একটি বিদ্যমান DOCX ফাইল থেকে ডেটা পড়তে পারবেন। নিচে একটি উদাহরণ দেওয়া হলো, যেখানে আমরা একটি DOCX ফাইল থেকে টেক্সট পড়ছি:
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import java.io.FileInputStream;
import java.io.IOException;
public class ReadWordExample {
public static void main(String[] args) {
try (FileInputStream fis = new FileInputStream("example.docx")) {
XWPFDocument document = new XWPFDocument(fis);
// ডকুমেন্টের প্যারাগ্রাফগুলো পড়া
for (XWPFParagraph paragraph : document.getParagraphs()) {
System.out.println(paragraph.getText());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
এই কোডটি example.docx ফাইল থেকে টেক্সট পড়বে এবং কনসোলে প্রিন্ট করবে। এখানে XWPFDocument এবং XWPFParagraph ব্যবহার করে ফাইলের সমস্ত প্যারাগ্রাফ পড়া হয়েছে।
ধাপ ৪: প্যারাগ্রাফ ফরম্যাটিং এবং টেক্সট স্টাইল
Word ডকুমেন্টে আপনি টেক্সটের ফরম্যাটিং এবং স্টাইলিং করতে পারেন, যেমন বোল্ড, ইটালিক, আন্ডারলাইন, এবং ফন্ট সাইজ। উদাহরণ:
XWPFParagraph paragraph = document.createParagraph();
XWPFRun run = paragraph.createRun();
run.setText("এটি একটি স্টাইলড টেক্সট।");
run.setBold(true); // বোল্ড
run.setItalic(true); // ইটালিক
run.setUnderline(UnderlinePatterns.SINGLE); // আন্ডারলাইন
run.setFontSize(16); // ফন্ট সাইজ সেট করা
ধাপ ৫: সারণী (Table) তৈরি করা
Apache POI দিয়ে Word ডকুমেন্টে একটি সারণী তৈরি করা যায়। উদাহরণস্বরূপ:
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFTable;
import java.io.FileOutputStream;
import java.io.IOException;
public class CreateTableExample {
public static void main(String[] args) {
XWPFDocument document = new XWPFDocument();
// একটি সারণী তৈরি করা
XWPFTable table = document.createTable();
// সারণীতে সারি ও কলাম যোগ করা
table.getRow(0).getCell(0).setText("নাম");
table.getRow(0).addNewTableCell().setText("বয়স");
table.createRow().getCell(0).setText("জন");
table.getRow(1).getCell(1).setText("৩০");
try (FileOutputStream out = new FileOutputStream("table_example.docx")) {
document.write(out);
System.out.println("সারণী সহ Word ডকুমেন্ট সফলভাবে তৈরি হয়েছে!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
এই কোডটি একটি Word ডকুমেন্টে একটি সারণী তৈরি করবে, যেখানে নাম এবং বয়স কলাম থাকবে।
ধাপ ৬: ইমেজ যোগ করা
Word ডকুমেন্টে ইমেজ যোগ করা সম্ভব। নিচের উদাহরণটি দেখুন:
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class AddImageExample {
public static void main(String[] args) {
try (XWPFDocument document = new XWPFDocument()) {
XWPFRun run = document.createParagraph().createRun();
FileInputStream fis = new FileInputStream("image.png");
// ইমেজ যোগ করা
run.addPicture(fis, XWPFDocument.PICTURE_TYPE_PNG, "image.png", 500, 400); // Image size in pixels
try (FileOutputStream out = new FileOutputStream("image_example.docx")) {
document.write(out);
System.out.println("ইমেজ সহ Word ডকুমেন্ট সফলভাবে তৈরি হয়েছে!");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
এখানে, আমরা একটি PNG ইমেজ Word ডকুমেন্টে যোগ করেছি এবং image_example.docx নামে সেভ করেছি।
Apache POI হলো একটি শক্তিশালী এবং ফ্লেক্সিবল Java লাইব্রেরি, যা Microsoft Word (DOCX) ডকুমেন্ট তৈরি, সম্পাদনা এবং পড়ার কাজকে সহজ করে তোলে। এর XWPF API এর মাধ্যমে ডেভেলপাররা খুব সহজেই Word ফাইল তৈরি করতে পারে এবং এতে টেক্সট, টেবিল, ইমেজ এবং অন্যান্য উপাদান যোগ করতে পারে। Apache POI বিশেষ করে সেই সব Java ডেভেলপারদের জন্য কার্যকর, যারা তাদের অ্যাপ্লিকেশনে Microsoft Word ডকুমেন্ট নিয়ে কাজ করতে চান।
Apache POI হলো একটি ওপেন সোর্স লাইব্রেরি যা Java প্রোগ্রামিং ভাষায় তৈরি করা হয়েছে এবং এটি Microsoft Office ফাইল (যেমন Excel, Word, PowerPoint) পরিচালনা করার জন্য ব্যবহৃত হয়। বিশেষভাবে, Apache POI HWPF (Horrible Word Processor Format) এবং XWPF (XML Word Processing Format) নামক দুটি উপ-প্যাকেজের মাধ্যমে Word ডকুমেন্ট তৈরি, পড়া এবং সম্পাদনা করার ক্ষমতা প্রদান করে।
Apache POI হলো একটি ওপেন-সোর্স Java লাইব্রেরি, যা Microsoft Office ফাইল ফরম্যাট (যেমন Word, Excel, PowerPoint ইত্যাদি) ম্যানিপুলেট করতে ব্যবহৃত হয়। Apache POI আপনাকে Java এর মাধ্যমে Microsoft Word ফাইল (যেমন .docx ফাইল) তৈরি, সম্পাদনা এবং পড়ার সুযোগ দেয়।
Apache POI-র XWPF (XML Word Processing Format) API ব্যবহার করে আপনি DOCX ফরম্যাটে Word ডকুমেন্ট তৈরি, সম্পাদনা এবং প্রক্রিয়াকরণ করতে পারবেন। XWPF মূলত Microsoft Office Open XML ফরম্যাটের সাথে কাজ করে, যা DOCX ফাইল ফরম্যাটের জন্য ব্যবহার করা হয়।
ধাপ ১: Maven ডিপেন্ডেন্সি যোগ করা
Apache POI ব্যবহার করার জন্য আপনাকে Maven এর মাধ্যমে প্রয়োজনীয় ডিপেন্ডেন্সি যোগ করতে হবে। pom.xml
ফাইলে নিচের ডিপেন্ডেন্সিগুলো যোগ করুন:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>5.1.1</version>
</dependency>
ধাপ ২: একটি নতুন Word ফাইল তৈরি করা
Apache POI ব্যবহার করে DOCX ফরম্যাটে একটি নতুন Word ডকুমেন্ট তৈরি করা খুবই সহজ। নিচে একটি উদাহরণ দেওয়া হলো, যেখানে আমরা একটি নতুন Word ডকুমেন্ট তৈরি করছি এবং তাতে কিছু টেক্সট লিখছি:
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import java.io.FileOutputStream;
import java.io.IOException;
public class CreateWordExample {
public static void main(String[] args) {
// একটি নতুন ডকুমেন্ট তৈরি করা
XWPFDocument document = new XWPFDocument();
// একটি নতুন প্যারাগ্রাফ তৈরি করা
XWPFParagraph paragraph = document.createParagraph();
XWPFRun run = paragraph.createRun();
run.setText("এটি একটি উদাহরণস্বরূপ Word ডকুমেন্ট।");
run.setBold(true); // বোল্ড টেক্সট
// ডকুমেন্টকে ফাইলে সেভ করা
try (FileOutputStream out = new FileOutputStream("example.docx")) {
document.write(out);
System.out.println("Word ডকুমেন্ট সফলভাবে তৈরি হয়েছে!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
উপরের কোডে, আমরা XWPFDocument ব্যবহার করে একটি নতুন Word ডকুমেন্ট তৈরি করেছি এবং একটি প্যারাগ্রাফ লিখেছি, যেখানে টেক্সট বোল্ড করা হয়েছে। এই ডকুমেন্টটি example.docx নামে সেভ করা হবে।
ধাপ ৩: একটি বিদ্যমান Word ফাইল থেকে ডেটা পড়া
Apache POI দিয়ে আপনি একটি বিদ্যমান DOCX ফাইল থেকে ডেটা পড়তে পারবেন। নিচে একটি উদাহরণ দেওয়া হলো, যেখানে আমরা একটি DOCX ফাইল থেকে টেক্সট পড়ছি:
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import java.io.FileInputStream;
import java.io.IOException;
public class ReadWordExample {
public static void main(String[] args) {
try (FileInputStream fis = new FileInputStream("example.docx")) {
XWPFDocument document = new XWPFDocument(fis);
// ডকুমেন্টের প্যারাগ্রাফগুলো পড়া
for (XWPFParagraph paragraph : document.getParagraphs()) {
System.out.println(paragraph.getText());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
এই কোডটি example.docx ফাইল থেকে টেক্সট পড়বে এবং কনসোলে প্রিন্ট করবে। এখানে XWPFDocument এবং XWPFParagraph ব্যবহার করে ফাইলের সমস্ত প্যারাগ্রাফ পড়া হয়েছে।
ধাপ ৪: প্যারাগ্রাফ ফরম্যাটিং এবং টেক্সট স্টাইল
Word ডকুমেন্টে আপনি টেক্সটের ফরম্যাটিং এবং স্টাইলিং করতে পারেন, যেমন বোল্ড, ইটালিক, আন্ডারলাইন, এবং ফন্ট সাইজ। উদাহরণ:
XWPFParagraph paragraph = document.createParagraph();
XWPFRun run = paragraph.createRun();
run.setText("এটি একটি স্টাইলড টেক্সট।");
run.setBold(true); // বোল্ড
run.setItalic(true); // ইটালিক
run.setUnderline(UnderlinePatterns.SINGLE); // আন্ডারলাইন
run.setFontSize(16); // ফন্ট সাইজ সেট করা
ধাপ ৫: সারণী (Table) তৈরি করা
Apache POI দিয়ে Word ডকুমেন্টে একটি সারণী তৈরি করা যায়। উদাহরণস্বরূপ:
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFTable;
import java.io.FileOutputStream;
import java.io.IOException;
public class CreateTableExample {
public static void main(String[] args) {
XWPFDocument document = new XWPFDocument();
// একটি সারণী তৈরি করা
XWPFTable table = document.createTable();
// সারণীতে সারি ও কলাম যোগ করা
table.getRow(0).getCell(0).setText("নাম");
table.getRow(0).addNewTableCell().setText("বয়স");
table.createRow().getCell(0).setText("জন");
table.getRow(1).getCell(1).setText("৩০");
try (FileOutputStream out = new FileOutputStream("table_example.docx")) {
document.write(out);
System.out.println("সারণী সহ Word ডকুমেন্ট সফলভাবে তৈরি হয়েছে!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
এই কোডটি একটি Word ডকুমেন্টে একটি সারণী তৈরি করবে, যেখানে নাম এবং বয়স কলাম থাকবে।
ধাপ ৬: ইমেজ যোগ করা
Word ডকুমেন্টে ইমেজ যোগ করা সম্ভব। নিচের উদাহরণটি দেখুন:
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class AddImageExample {
public static void main(String[] args) {
try (XWPFDocument document = new XWPFDocument()) {
XWPFRun run = document.createParagraph().createRun();
FileInputStream fis = new FileInputStream("image.png");
// ইমেজ যোগ করা
run.addPicture(fis, XWPFDocument.PICTURE_TYPE_PNG, "image.png", 500, 400); // Image size in pixels
try (FileOutputStream out = new FileOutputStream("image_example.docx")) {
document.write(out);
System.out.println("ইমেজ সহ Word ডকুমেন্ট সফলভাবে তৈরি হয়েছে!");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
এখানে, আমরা একটি PNG ইমেজ Word ডকুমেন্টে যোগ করেছি এবং image_example.docx নামে সেভ করেছি।
Apache POI হলো একটি শক্তিশালী এবং ফ্লেক্সিবল Java লাইব্রেরি, যা Microsoft Word (DOCX) ডকুমেন্ট তৈরি, সম্পাদনা এবং পড়ার কাজকে সহজ করে তোলে। এর XWPF API এর মাধ্যমে ডেভেলপাররা খুব সহজেই Word ফাইল তৈরি করতে পারে এবং এতে টেক্সট, টেবিল, ইমেজ এবং অন্যান্য উপাদান যোগ করতে পারে। Apache POI বিশেষ করে সেই সব Java ডেভেলপারদের জন্য কার্যকর, যারা তাদের অ্যাপ্লিকেশনে Microsoft Word ডকুমেন্ট নিয়ে কাজ করতে চান।