Apache POI এর মাধ্যমে আপনি বিদ্যমান Microsoft Word ডকুমেন্ট ওপেন এবং সেগুলোর মধ্যে প্রয়োজনীয় সম্পাদনা করতে পারেন। এটি আপনাকে .doc এবং .docx ফরম্যাটের ডকুমেন্ট পড়া, সম্পাদনা করা, নতুন কনটেন্ট যোগ করা, এবং ডকুমেন্টের ফরম্যাট পরিবর্তন করার সুবিধা প্রদান করে। আপনি যেমন টেবিল যোগ করতে পারেন, টেক্সট পরিবর্তন করতে পারেন, প্যারাগ্রাফ এবং রুন স্টাইল করতে পারেন, কিংবা চিত্র ও গ্রাফিক্স সংযোজন করতে পারেন।
এই প্রক্রিয়ায়, আপনি বিদ্যমান ডকুমেন্টে প্রোগ্রাম্যাটিকভাবে বিভিন্ন পরিবর্তন করতে পারবেন, যেমন:
এখানে, আমরা একটি বিদ্যমান .docx ফাইল ওপেন করার এবং সেটিতে কিছু সাধারণ পরিবর্তন করার উদাহরণ দেখবো।
প্রথমে, আমরা একটি বিদ্যমান Word ডকুমেন্ট ওপেন করবো এবং সেটি সম্পাদনা করার জন্য প্রস্তুত করবো। নিচের কোডে আমরা একটি .docx ফাইল ওপেন করব:
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class EditExistingWordDocument {
public static void main(String[] args) throws IOException {
// বিদ্যমান ডকুমেন্ট ওপেন করা
FileInputStream fileInputStream = new FileInputStream("existingDocument.docx");
XWPFDocument document = new XWPFDocument(fileInputStream);
// নতুন প্যারাগ্রাফ তৈরি এবং এতে টেক্সট যোগ করা
XWPFParagraph paragraph = document.createParagraph();
XWPFRun run = paragraph.createRun();
run.setText("This is the newly added text in the existing Word document.");
// ডকুমেন্ট সংরক্ষণ
try (FileOutputStream out = new FileOutputStream("UpdatedDocument.docx")) {
document.write(out);
}
System.out.println("বিদ্যমান ডকুমেন্ট সফলভাবে সম্পাদিত হয়েছে!");
}
}
এই কোডটি existingDocument.docx নামক বিদ্যমান ডকুমেন্ট ওপেন করবে এবং সেখানে একটি নতুন প্যারাগ্রাফ যোগ করবে। তারপর এটি UpdatedDocument.docx নামে নতুন ডকুমেন্ট হিসেবে সংরক্ষণ করবে।
বিদ্যমান ডকুমেন্টে কিছু বিশেষ টেক্সট পরিবর্তন করার জন্য, আপনি ডকুমেন্টের প্যারাগ্রাফগুলোর মধ্যে সার্চ করে সেই প্যারাগ্রাফ বা রুন পরিবর্তন করতে পারেন। নিচে একটি উদাহরণ দেওয়া হলো:
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
public class ModifyExistingText {
public static void main(String[] args) throws IOException {
FileInputStream fileInputStream = new FileInputStream("existingDocument.docx");
XWPFDocument document = new XWPFDocument(fileInputStream);
// সমস্ত প্যারাগ্রাফ পড়া
List<XWPFParagraph> paragraphs = document.getParagraphs();
// প্রথম প্যারাগ্রাফে টেক্সট পরিবর্তন
if (!paragraphs.isEmpty()) {
XWPFParagraph firstParagraph = paragraphs.get(0);
XWPFRun run = firstParagraph.getRuns().get(0); // প্রথম রান নির্বাচন
run.setText("This is the updated text in the first paragraph.");
}
// ডকুমেন্ট সংরক্ষণ
try (FileOutputStream out = new FileOutputStream("UpdatedTextDocument.docx")) {
document.write(out);
}
System.out.println("টেক্সট সফলভাবে পরিবর্তন করা হয়েছে!");
}
}
এই কোডটি ডকুমেন্টের প্রথম প্যারাগ্রাফের টেক্সট পরিবর্তন করবে এবং নতুন ডকুমেন্টে সেই পরিবর্তন সংরক্ষণ করবে।
যদি আপনার ডকুমেন্টে নতুন একটি টেবিল যোগ করতে চান, তাহলে আপনি নিম্নলিখিত কোড ব্যবহার করতে পারেন:
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFTable;
import org.apache.poi.xwpf.usermodel.XWPFTableRow;
import org.apache.poi.xwpf.usermodel.XWPFTableCell;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class AddTableToExistingDocument {
public static void main(String[] args) throws IOException {
FileInputStream fileInputStream = new FileInputStream("existingDocument.docx");
XWPFDocument document = new XWPFDocument(fileInputStream);
// একটি নতুন টেবিল তৈরি করা
XWPFTable table = document.createTable();
// প্রথম রো তৈরি এবং সেল যোগ করা
XWPFTableRow row = table.getRow(0);
XWPFTableCell cell1 = row.getCell(0);
XWPFTableCell cell2 = row.createCell();
cell1.setText("Cell 1");
cell2.setText("Cell 2");
// নতুন রো যোগ করা
XWPFTableRow newRow = table.createRow();
XWPFTableCell newCell1 = newRow.getCell(0);
XWPFTableCell newCell2 = newRow.createCell();
newCell1.setText("New Cell 1");
newCell2.setText("New Cell 2");
// ডকুমেন্ট সংরক্ষণ
try (FileOutputStream out = new FileOutputStream("UpdatedDocumentWithTable.docx")) {
document.write(out);
}
System.out.println("টেবিল সফলভাবে যোগ করা হয়েছে!");
}
}
এই কোডটি একটি নতুন টেবিল যোগ করবে এবং সেলগুলোর মধ্যে কিছু টেক্সট সংযোজন করবে।
Apache POI ব্যবহার করে বিদ্যমান Microsoft Word ডকুমেন্ট ওপেন এবং সম্পাদনা করা খুবই সহজ। আপনি টেক্সট পরিবর্তন, টেবিল যোগ করা, প্যারাগ্রাফ এবং রুনের স্টাইল কাস্টমাইজেশন, নতুন প্যারাগ্রাফ বা চিত্র যোগ করা ইত্যাদি কাজ করতে পারবেন। POI এর API সরল এবং পরিষ্কার, যা Java ডেভেলপারদের জন্য কার্যকরী এবং সময় সাশ্রয়ী। এই ধরনের ম্যানিপুলেশন ডকুমেন্ট জেনারেশন এবং কাস্টমাইজেশন প্রক্রিয়া অনেক সহজ করে তোলে।
common.read_more