Skill

Word ফাইল থেকে ডেটা এক্সট্র্যাক্ট করা

অ্যাপাচি পিওআই (Apache POI) - Java Technologies

216

Apache POI লাইব্রেরি Microsoft Word ফাইল থেকে ডেটা এক্সট্র্যাক্ট করার জন্য একটি শক্তিশালী উপায় প্রদান করে। XWPF (XML Word Processing Format) ব্যবহার করে আপনি Word 2007+ (DOCX) ফাইল থেকে টেক্সট, টেবিল, চিত্র, স্টাইল এবং অন্যান্য উপাদান এক্সট্র্যাক্ট করতে পারেন। এটি সাধারণত কনটেন্ট প্রোসেসিং, ডেটা মাইগ্রেশন, রিপোর্ট জেনারেশন এবং অন্যান্য কাজে ব্যবহৃত হয়।

এখানে আমরা Word ফাইল থেকে ডেটা এক্সট্র্যাক্ট করার কিছু সাধারণ কৌশল এবং উদাহরণ দেখবো।


১. XWPFDocument ব্যবহার করে Word ফাইল লোড করা

প্রথমে, আপনি XWPFDocument ক্লাস ব্যবহার করে Word ফাইলটি লোড করতে হবে। এই ক্লাসের মাধ্যমে DOCX ফাইলের বিভিন্ন উপাদান অ্যাক্সেস করা সম্ভব।

import org.apache.poi.xwpf.usermodel.XWPFDocument;

import java.io.FileInputStream;
import java.io.IOException;

public class WordExtractExample {
    public static void main(String[] args) throws IOException {
        // Word ডকুমেন্ট লোড করা
        FileInputStream fis = new FileInputStream("example.docx");
        XWPFDocument document = new XWPFDocument(fis);
        
        // কাজ শেষ হলে স্ট্রিম বন্ধ করা
        fis.close();
    }
}

২. Word ডকুমেন্ট থেকে টেক্সট এক্সট্র্যাক্ট করা

XWPFDocument ব্যবহার করে Word ডকুমেন্টের সব টেক্সট এক্সট্র্যাক্ট করা সম্ভব। এটি Paragraph এবং Run নামক দুটি উপাদান ব্যবহার করে কাজ করে।

উদাহরণ: টেক্সট এক্সট্র্যাক্ট করা

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.IOException;
import java.util.List;

public class ExtractTextExample {
    public static void main(String[] args) throws IOException {
        FileInputStream fis = new FileInputStream("example.docx");
        XWPFDocument document = new XWPFDocument(fis);

        // সব প্যারাগ্রাফ নিয়ে আসা
        List<XWPFParagraph> paragraphs = document.getParagraphs();
        
        // প্যারাগ্রাফের সব টেক্সট এক্সট্র্যাক্ট করা
        for (XWPFParagraph paragraph : paragraphs) {
            for (XWPFRun run : paragraph.getRuns()) {
                System.out.print(run.toString() + " ");
            }
        }

        fis.close();
    }
}

এই কোডটি example.docx ফাইলের সব প্যারাগ্রাফ থেকে টেক্সট বের করে স্ক্রীনে প্রদর্শন করবে। XWPFRun এর মাধ্যমে ফর্ম্যাটিং সহ টেক্সট এক্সট্র্যাক্ট করা হয়।


৩. Tables থেকে ডেটা এক্সট্র্যাক্ট করা

Word ডকুমেন্টে যদি কোনো টেবিল থাকে, তবে সেই টেবিল থেকে ডেটা এক্সট্র্যাক্ট করার জন্য XWPFTable ব্যবহার করতে হবে। নিচে একটি উদাহরণ দেওয়া হলো যা একটি টেবিলের সব সেল থেকে ডেটা বের করে।

উদাহরণ: টেবিল থেকে ডেটা এক্সট্র্যাক্ট করা

import org.apache.poi.xwpf.usermodel.*;

import java.io.FileInputStream;
import java.io.IOException;
import java.util.List;

public class ExtractTableExample {
    public static void main(String[] args) throws IOException {
        FileInputStream fis = new FileInputStream("example.docx");
        XWPFDocument document = new XWPFDocument(fis);
        
        // টেবিলগুলি নিয়ে আসা
        List<XWPFTable> tables = document.getTables();
        
        // প্রতিটি টেবিলের সব সেল থেকে ডেটা এক্সট্র্যাক্ট করা
        for (XWPFTable table : tables) {
            for (XWPFTableRow row : table.getRows()) {
                for (XWPFTableCell cell : row.getTableCells()) {
                    System.out.print(cell.getText() + " | ");
                }
                System.out.println();
            }
        }

        fis.close();
    }
}

এখানে XWPFTable ব্যবহার করে টেবিলের প্রতিটি সেল থেকে ডেটা এক্সট্র্যাক্ট করা হয়েছে।


৪. Images (চিত্র) এক্সট্র্যাক্ট করা

Word ডকুমেন্ট থেকে চিত্র (image) এক্সট্র্যাক্ট করার জন্য, আপনাকে XWPFPictureData ব্যবহার করতে হবে। আপনি ইমেজগুলোর মেটাডেটা এবং কন্টেন্ট এক্সট্র্যাক্ট করতে পারেন এবং সেগুলোকে সেভ করতে পারেন।

উদাহরণ: চিত্র এক্সট্র্যাক্ট করা

import org.apache.poi.xwpf.usermodel.*;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class ExtractImagesExample {
    public static void main(String[] args) throws IOException {
        FileInputStream fis = new FileInputStream("example.docx");
        XWPFDocument document = new XWPFDocument(fis);

        // ডকুমেন্টে থাকা ছবি বের করা
        for (XWPFPictureData picture : document.getAllPictures()) {
            byte[] bytes = picture.getData();
            FileOutputStream out = new FileOutputStream("extracted_image_" + picture.getPackagePart().getPartName());
            out.write(bytes);
            out.close();
        }

        fis.close();
    }
}

এই কোডটি example.docx ফাইল থেকে সব চিত্র এক্সট্র্যাক্ট করে প্রতিটি চিত্র আলাদা ফাইল হিসেবে সেভ করবে।


৫. Headers এবং Footers এক্সট্র্যাক্ট করা

Word ডকুমেন্টে থাকা header এবং footer অংশগুলি এক্সট্র্যাক্ট করতে, XWPFFooter এবং XWPFFooterHeader ব্যবহার করতে হয়। এর মাধ্যমে ডকুমেন্টের header/footer থেকে টেক্সট বা অন্যান্য উপাদান বের করা সম্ভব।

উদাহরণ: Header/Footer থেকে ডেটা এক্সট্র্যাক্ট করা

import org.apache.poi.xwpf.usermodel.*;

import java.io.FileInputStream;
import java.io.IOException;
import java.util.List;

public class ExtractHeaderFooterExample {
    public static void main(String[] args) throws IOException {
        FileInputStream fis = new FileInputStream("example.docx");
        XWPFDocument document = new XWPFDocument(fis);

        // Header extraction
        List<XWPFFooter> footers = document.getFooters();
        for (XWPFFooter footer : footers) {
            for (XWPFFParagraph paragraph : footer.getParagraphs()) {
                System.out.println("Footer Text: " + paragraph.getText());
            }
        }

        fis.close();
    }
}

এই উদাহরণে, footer থেকে টেক্সট এক্সট্র্যাক্ট করা হয়েছে।


সারাংশ

Apache POI লাইব্রেরি ব্যবহার করে আপনি Word (DOCX) ফাইল থেকে বিভিন্ন ধরনের ডেটা এক্সট্র্যাক্ট করতে পারেন, যেমন টেক্সট, টেবিল, চিত্র, হেডার/ফুটার ইত্যাদি। XWPFDocument ক্লাসের সাহায্যে আপনি এই সব উপাদান সহজেই পেতে এবং প্রসেস করতে পারেন।

এই সব ফিচারগুলি ব্যবহার করে আপনি স্বয়ংক্রিয়ভাবে Word ফাইল থেকে ডেটা বের করে প্রয়োজনীয় কাজে লাগাতে পারবেন।

Content added By

Apache POI লাইব্রেরি ব্যবহার করে আপনি বিদ্যমান Word ফাইল (যেমন .docx) সহজেই লোড এবং প্রক্রিয়া করতে পারেন। এতে আপনি ফাইলটি খুলে এর কন্টেন্ট (যেমন টেক্সট, টেবিল, চিত্র) অ্যাক্সেস করতে পারবেন, এবং চাইলে সেগুলোর মধ্যে পরিবর্তনও করতে পারবেন।

এখানে দেখানো হচ্ছে কিভাবে XWPFDocument ব্যবহার করে একটি বিদ্যমান Word ফাইল লোড করা হয়। XWPFDocument ক্লাসটি Apache POI তে .docx ফাইলের জন্য ব্যবহৃত হয়, যা Microsoft Word 2007 বা তার পরবর্তী সংস্করণে তৈরি ফাইলের সাথে কাজ করে।


1. বিদ্যমান Word ফাইল লোড করা

নিম্নলিখিত কোডে দেখানো হয়েছে কীভাবে একটি বিদ্যমান Word ফাইল লোড করা হয় এবং তার সেলের টেক্সট পড়া হয়।

উদাহরণ: Word ফাইল লোড করা এবং এর টেক্সট প্রিন্ট করা

import org.apache.poi.xwpf.usermodel.*;
import java.io.FileInputStream;
import java.io.IOException;

public class LoadWordFileExample {
    public static void main(String[] args) throws IOException {
        // Word ফাইলের পাথ
        String filePath = "existing_word_file.docx";

        // FileInputStream তৈরি করা
        FileInputStream fis = new FileInputStream(filePath);

        // XWPFDocument এর মাধ্যমে Word ফাইল লোড করা
        XWPFDocument document = new XWPFDocument(fis);

        // Word ডকুমেন্টে থাকা প্যারাগ্রাফগুলো পড়া
        for (XWPFParagraph paragraph : document.getParagraphs()) {
            System.out.println(paragraph.getText());
        }

        // Word ডকুমেন্ট বন্ধ করা
        document.close();
        fis.close();
    }
}

এখানে:

  • FileInputStream ব্যবহার করে Word ফাইলটি লোড করা হচ্ছে।
  • XWPFDocument ব্যবহার করে Word ডকুমেন্টটি ওপেন করা হচ্ছে।
  • getParagraphs() মেথডটি ব্যবহার করে ডকুমেন্টের সকল প্যারাগ্রাফ পড়া হচ্ছে এবং getText() মেথড দ্বারা প্রতিটি প্যারাগ্রাফের টেক্সট প্রিন্ট করা হচ্ছে।

2. বিদ্যমান Word ফাইল থেকে Table ডেটা পড়া

Word ডকুমেন্টে যদি টেবিল থাকে, তবে XWPFTable ক্লাস ব্যবহার করে আপনি টেবিলের সেলগুলোও এক্সেস করতে পারবেন।

উদাহরণ: Word ডকুমেন্ট থেকে টেবিলের ডেটা পড়া

import org.apache.poi.xwpf.usermodel.*;

import java.io.FileInputStream;
import java.io.IOException;

public class LoadWordTableExample {
    public static void main(String[] args) throws IOException {
        // Word ফাইলের পাথ
        String filePath = "existing_word_file_with_table.docx";

        // FileInputStream তৈরি করা
        FileInputStream fis = new FileInputStream(filePath);

        // XWPFDocument এর মাধ্যমে Word ফাইল লোড করা
        XWPFDocument document = new XWPFDocument(fis);

        // Word ডকুমেন্টে থাকা টেবিলগুলো পড়া
        for (XWPFTable table : document.getTables()) {
            for (XWPFTableRow row : table.getRows()) {
                for (XWPFTableCell cell : row.getTableCells()) {
                    System.out.print(cell.getText() + "\t");
                }
                System.out.println();
            }
        }

        // Word ডকুমেন্ট বন্ধ করা
        document.close();
        fis.close();
    }
}

এখানে:

  • getTables() মেথড ব্যবহার করে ডকুমেন্টের সকল টেবিল এক্সেস করা হয়েছে।
  • getRows() এবং getTableCells() মেথড ব্যবহার করে প্রতিটি রো এবং সেলের ডেটা পড়া হচ্ছে।

3. Word ডকুমেন্টে Image পড়া

Word ডকুমেন্টে যদি চিত্র (image) থাকে, আপনি XWPFPictureData ব্যবহার করে চিত্রের ডেটা এক্সেস করতে পারবেন।

উদাহরণ: Word ডকুমেন্ট থেকে চিত্র পড়া

import org.apache.poi.xwpf.usermodel.*;

import java.io.FileInputStream;
import java.io.IOException;

public class LoadWordImagesExample {
    public static void main(String[] args) throws IOException {
        // Word ফাইলের পাথ
        String filePath = "existing_word_file_with_images.docx";

        // FileInputStream তৈরি করা
        FileInputStream fis = new FileInputStream(filePath);

        // XWPFDocument এর মাধ্যমে Word ফাইল লোড করা
        XWPFDocument document = new XWPFDocument(fis);

        // ডকুমেন্টে থাকা সকল চিত্র পড়া
        for (XWPFPictureData pictureData : document.getAllPictures()) {
            System.out.println("Image Type: " + pictureData.suggestFileExtension());
            System.out.println("Image Size: " + pictureData.getData().length + " bytes");
        }

        // Word ডকুমেন্ট বন্ধ করা
        document.close();
        fis.close();
    }
}

এখানে:

  • getAllPictures() মেথড ব্যবহার করে ডকুমেন্টের সকল চিত্রের ডেটা এক্সেস করা হয়েছে।
  • suggestFileExtension() মেথড দ্বারা চিত্রের ফাইল এক্সটেনশন এবং getData() মেথড দ্বারা চিত্রের ডেটা পাওয়া যাচ্ছে।

4. Error Handling

অন্যথায়, কিছু সম্ভাব্য ত্রুটি এড়াতে try-catch ব্লক ব্যবহার করা ভাল।

try (FileInputStream fis = new FileInputStream("existing_word_file.docx")) {
    XWPFDocument document = new XWPFDocument(fis);
    // Further processing here
} catch (IOException e) {
    System.err.println("Error reading the Word document: " + e.getMessage());
}

এখানে:

  • try-with-resources ব্যবহার করা হয়েছে যাতে ফাইল এবং ডকুমেন্ট অবজেক্ট সঠিকভাবে বন্ধ হয়।

সারাংশ

Apache POI লাইব্রেরি ব্যবহার করে আপনি বিদ্যমান Word ডকুমেন্ট (যেমন .docx) লোড করতে পারেন এবং তার মধ্যে থাকা টেক্সট, টেবিল, চিত্রসহ অন্যান্য কন্টেন্ট এক্সেস করতে পারেন। XWPFDocument ক্লাসটি এই কাজের জন্য ব্যবহৃত হয়, যেখানে getParagraphs(), getTables(), getAllPictures() ইত্যাদি মেথড ব্যবহার করে আপনি ডকুমেন্টের বিভিন্ন অংশ পড়তে পারেন। এই লাইব্রেরি আপনাকে Word ডকুমেন্টের বিভিন্ন তথ্য প্রক্রিয়া করতে সাহায্য করে।

Content added By

অ্যাপাচি পিওআই (Apache POI) লাইব্রেরি ব্যবহারের মাধ্যমে আমরা Microsoft Word (DOCX) এবং Excel (XLSX) ফাইল থেকে টেক্সট এবং টেবিল ডেটা সহজেই এক্সট্র্যাক্ট করতে পারি। এটি ডকুমেন্ট এবং স্প্রেডশিট থেকে প্রয়োজনীয় তথ্য দ্রুত ও কার্যকরভাবে বের করতে সহায়তা করে। এই প্রসেসে POI লাইব্রেরি সেল, রো, কলাম, প্যারাগ্রাফ, টেবিল ইত্যাদি থেকে ডেটা এক্সট্র্যাক্ট করতে সক্ষম।


টেক্সট এক্সট্র্যাক্ট করা

অ্যাপাচি পিওআই এর মাধ্যমে Word (DOCX) ডকুমেন্ট থেকে টেক্সট এক্সট্র্যাক্ট করা সম্ভব। XWPFDocument ক্লাসটি DOCX ফাইল থেকে টেক্সট এক্সট্র্যাক্ট করতে ব্যবহৃত হয়।

Word ডকুমেন্ট থেকে টেক্সট এক্সট্র্যাক্ট করা

// Example of extracting text from a DOCX file using Apache POI
FileInputStream fis = new FileInputStream("example.docx");
XWPFDocument document = new XWPFDocument(fis);

// Extract text from paragraphs
for (XWPFParagraph paragraph : document.getParagraphs()) {
    System.out.println(paragraph.getText());
}

fis.close();

এখানে XWPFDocument ব্যবহার করা হয়েছে, যা DOCX ফাইলের সমস্ত প্যারাগ্রাফ থেকে টেক্সট এক্সট্র্যাক্ট করে প্রিন্ট করবে।


টেবিল ডেটা এক্সট্র্যাক্ট করা

এক্সেল (XLSX) ফাইল থেকে টেবিল ডেটা এক্সট্র্যাক্ট করতে XSSF বা SXSSF ক্লাস ব্যবহার করা হয়। XSSF নতুন Excel ফাইল (.xlsx) প্রসেস করতে ব্যবহৃত হয়।

Excel ফাইল থেকে টেবিল ডেটা এক্সট্র্যাক্ট করা

// Example of extracting table data from an Excel file (XLSX) using Apache POI
FileInputStream fis = new FileInputStream("example.xlsx");
XSSFWorkbook workbook = new XSSFWorkbook(fis);
XSSFSheet sheet = workbook.getSheetAt(0);

// Loop through rows and columns to extract data
for (Row row : sheet) {
    for (Cell cell : row) {
        System.out.print(cell.toString() + "\t"); // Print the cell data
    }
    System.out.println();
}

workbook.close();
fis.close();

এখানে XSSFWorkbook ক্লাস ব্যবহার করে Excel শীট থেকে টেবিল ডেটা এক্সট্র্যাক্ট করা হয়েছে। প্রতিটি সেলের ডেটা ধরে System.out.println দিয়ে প্রিন্ট করা হয়েছে।

Excel শীটে টেবিল ডেটা এক্সট্র্যাক্ট করার পরিস্কার উদাহরণ:

একটি টেবিলের সেল থেকে ডেটা এক্সট্র্যাক্ট করার জন্য, Row এবং Cell অবজেক্ট ব্যবহার করা হয়, যাতে সহজেই ডেটা পাওয়া যায়।


Word এবং Excel ডকুমেন্টের মধ্যে পার্থক্য

  1. টেক্সট এক্সট্র্যাকশন: Word ডকুমেন্টের ক্ষেত্রে টেক্সট এক্সট্র্যাক্ট করার জন্য XWPFDocument ব্যবহার করা হয়, যেখানে প্যারাগ্রাফ গুলি এক্সট্র্যাক্ট করা হয়। অন্যদিকে Excel ডকুমেন্টে সেলগুলির ডেটা এক্সট্র্যাক্ট করা হয়, যা XSSFWorkbook অথবা SXSSFWorkbook ক্লাস দিয়ে পরিচালিত হয়।
  2. টেবিল ডেটা: Word ডকুমেন্টে টেবিলের ডেটা XWPFTable ক্লাস দিয়ে এক্সট্র্যাক্ট করা হয়, কিন্তু Excel এ সেল এবং রো ভিত্তিক ডেটা প্রক্রিয়া করা হয়।

সারাংশ

অ্যাপাচি পিওআই (Apache POI) লাইব্রেরির মাধ্যমে Microsoft Word এবং Excel ফাইল থেকে টেক্সট এবং টেবিল ডেটা সহজে এক্সট্র্যাক্ট করা সম্ভব। Word ডকুমেন্ট থেকে টেক্সট এবং প্যারাগ্রাফ এক্সট্র্যাক্ট করতে XWPFDocument ব্যবহার করা হয়, এবং Excel শীট থেকে টেবিল ডেটা এক্সট্র্যাক্ট করার জন্য XSSFWorkbook বা SXSSFWorkbook ব্যবহার করা হয়। এই প্রক্রিয়াগুলি ডেটা বিশ্লেষণ এবং রিপোর্ট তৈরির কাজে খুবই কার্যকর।

Content added By

Apache POI ব্যবহার করে আপনি Microsoft Word ডকুমেন্ট থেকে Paragraph এবং Run (টেক্সটের স্টাইলযুক্ত অংশ) সহ ডেটা পড়তে পারেন। এই লাইব্রেরি আপনাকে Word ডকুমেন্টের মধ্যে Text, Font Style, Font Size, Color, Bold, Italic, Underline ইত্যাদি ফরম্যাটিং তথ্য বের করার সুযোগ দেয়।

এই টিউটোরিয়ালে, আমরা দেখব কিভাবে Paragraph এবং Run থেকে ফরম্যাটিংসহ ডেটা পড়তে হয়।


1. Apache POI ব্যবহার করে Word ডকুমেন্ট থেকে Paragraph এবং Run ডেটা পড়া

Paragraph একটি পুরো প্যারাগ্রাফের প্রতিনিধিত্ব করে এবং Run হলো প্যারাগ্রাফের একটি অংশ, যেখানে টেক্সট এবং তার স্টাইল (যেমন বোল্ড, ইটালিক ইত্যাদি) থাকে।

উদাহরণ: Paragraph এবং Run থেকে ফরম্যাটিং সহ ডেটা পড়া

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.IOException;
import java.util.List;

public class ReadParagraphAndRunExample {
    public static void main(String[] args) throws IOException {
        // Word ডকুমেন্ট ওপেন করা
        FileInputStream fis = new FileInputStream("example.docx");
        XWPFDocument document = new XWPFDocument(fis);

        // ডকুমেন্টের সব প্যারাগ্রাফ পড়া
        List<XWPFParagraph> paragraphs = document.getParagraphs();

        for (XWPFParagraph paragraph : paragraphs) {
            System.out.println("Paragraph Text: " + paragraph.getText());

            // প্যারাগ্রাফের সব Run (স্টাইলযুক্ত টেক্সট) পড়া
            List<XWPFRun> runs = paragraph.getRuns();
            for (XWPFRun run : runs) {
                System.out.println("Run Text: " + run.toString());
                System.out.println("Bold: " + run.isBold());
                System.out.println("Italic: " + run.isItalic());
                System.out.println("Underline: " + run.getUnderline());
                System.out.println("Font Size: " + run.getFontSize());
                System.out.println("Font Color: " + run.getColor());
            }
        }

        document.close();
        fis.close();
    }
}

এটি কী করবে:

  • example.docx ফাইলটি ওপেন করবে।
  • ডকুমেন্টের সব Paragraph পড়বে এবং তাদের টেক্সট প্রদর্শন করবে।
  • প্রতিটি Paragraph এর মধ্যে থাকা Run (স্টাইলযুক্ত টেক্সট) থেকে বোল্ড, ইটালিক, আন্ডারলাইন, ফন্ট সাইজ এবং ফন্ট কালারের মতো ফরম্যাটিং ডেটা বের করবে।

2. Font Style, Size এবং Color ফরম্যাটিং ডেটা পড়া

প্রতিটি Run অবজেক্টে Font Style, Font Size, এবং Font Color এর মতো ফরম্যাটিং তথ্য থাকে। আপনি এই তথ্যগুলো দিয়ে টেক্সটের সঠিক স্টাইল সম্পর্কে জানতে পারবেন।

উদাহরণ: Run থেকে Font Style, Font Size এবং Color পড়া

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.IOException;
import java.util.List;

public class ReadFormattingFromRunExample {
    public static void main(String[] args) throws IOException {
        // Word ডকুমেন্ট ওপেন করা
        FileInputStream fis = new FileInputStream("example.docx");
        XWPFDocument document = new XWPFDocument(fis);

        // ডকুমেন্টের সব প্যারাগ্রাফ পড়া
        List<XWPFParagraph> paragraphs = document.getParagraphs();

        for (XWPFParagraph paragraph : paragraphs) {
            System.out.println("Paragraph Text: " + paragraph.getText());

            // প্যারাগ্রাফের সব Run (স্টাইলযুক্ত টেক্সট) পড়া
            List<XWPFRun> runs = paragraph.getRuns();
            for (XWPFRun run : runs) {
                System.out.println("Run Text: " + run.toString());
                
                // Font Style (Bold, Italic, Underline)
                System.out.println("Bold: " + run.isBold());
                System.out.println("Italic: " + run.isItalic());
                System.out.println("Underline: " + run.getUnderline());

                // Font Size এবং Font Color
                System.out.println("Font Size: " + run.getFontSize());
                System.out.println("Font Color: " + run.getColor());
            }
        }

        document.close();
        fis.close();
    }
}

এটি কী করবে:

  • Run অবজেক্টের Font Size, Font Color, এবং Font Style এর তথ্য পড়বে এবং কনসোলে প্রদর্শন করবে।

3. Paragraph Alignment এবং Spacing এর মতো ফরম্যাটিং ডেটা পড়া

আপনি Paragraph এর alignment এবং spacing সম্পর্কিত ফরম্যাটিং ডেটাও পড়তে পারেন।

উদাহরণ: Paragraph Alignment এবং Spacing পড়া

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.List;

public class ReadParagraphAlignmentSpacingExample {
    public static void main(String[] args) throws IOException {
        // Word ডকুমেন্ট ওপেন করা
        FileInputStream fis = new FileInputStream("example.docx");
        XWPFDocument document = new XWPFDocument(fis);

        // ডকুমেন্টের সব প্যারাগ্রাফ পড়া
        List<XWPFParagraph> paragraphs = document.getParagraphs();

        for (XWPFParagraph paragraph : paragraphs) {
            // প্যারাগ্রাফের alignment এবং spacing তথ্য পড়া
            System.out.println("Paragraph Alignment: " + paragraph.getAlignment());
            System.out.println("Paragraph Line Spacing: " + paragraph.getSpacingBetween());
        }

        document.close();
        fis.close();
    }
}

এটি কী করবে:

  • Paragraph এর Alignment (যেমন Left, Right, Center, Justified) এবং Line Spacing (লাইনগুলোর মাঝে স্পেসিং) সম্পর্কে তথ্য প্রদর্শন করবে।

সারাংশ

Apache POI ব্যবহার করে Word ডকুমেন্ট থেকে Paragraph এবং Run অবজেক্টের মাধ্যমে টেক্সট এবং তার ফরম্যাটিং তথ্য পড়া সম্ভব। আপনি টেক্সটের Font Style (বোল্ড, ইটালিক, আন্ডারলাইন), Font Size, Font Color, Alignment, Spacing সহ অন্যান্য ফরম্যাটিং ডেটা এক্সট্র্যাক্ট করতে পারবেন। এই ফিচারগুলো Word ডকুমেন্টের কনটেন্ট প্রক্রিয়াকরণ এবং বিশ্লেষণের জন্য অত্যন্ত উপকারী।

Content added By

Apache POI লাইব্রেরি ব্যবহার করে আপনি Excel, Word, এবং PowerPoint ফাইলের Header এবং Footer সহজেই পরিচালনা করতে পারেন। এই ফিচারটি বেশ উপকারী যখন আপনাকে রিপোর্ট বা ডকুমেন্টে কাস্টম হেডার ও ফুটার যোগ করতে হয়, যেমন পৃষ্ঠা নম্বর, তারিখ, অথবা কাস্টম টেক্সট।

১. Excel ফাইলে Header এবং Footer যোগ করা

Apache POI এর XSSF (Excel) API এর মাধ্যমে Excel ফাইলে Header এবং Footer যোগ করা সম্ভব। আপনি বিভিন্ন ধরনের কাস্টম কন্টেন্ট যেমন পৃষ্ঠা নম্বর, শিরোনাম, এবং তারিখ যোগ করতে পারেন।

কোড উদাহরণ: Excel ফাইলে Header এবং Footer যোগ করা

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
import java.io.IOException;

public class ExcelHeaderFooterExample {

    public static void main(String[] args) throws IOException {
        // Excel Workbook তৈরি করা
        XSSFWorkbook workbook = new XSSFWorkbook();

        // Sheet তৈরি করা
        Sheet sheet = workbook.createSheet("Sheet1");

        // Header এবং Footer সেট করা
        Header header = sheet.getHeader();
        Footer footer = sheet.getFooter();

        // Header এ কাস্টম টেক্সট যোগ করা
        header.setCenter("Center Header Text");
        header.setLeft("Left Header Text");
        header.setRight("Right Header Text");

        // Footer এ পৃষ্ঠা নম্বর এবং তারিখ যোগ করা
        footer.setCenter("Page " + HeaderFooter.PAGE_NUM + " of " + HeaderFooter.NUM_PAGES);
        footer.setLeft("Left Footer Text");
        footer.setRight("Date: " + HeaderFooter.DATE);

        // কিছু ডেটা যোগ করা
        for (int i = 0; i < 10; i++) {
            Row row = sheet.createRow(i);
            for (int j = 0; j < 5; j++) {
                row.createCell(j).setCellValue("Row " + i + " Cell " + j);
            }
        }

        // Excel ফাইল সেভ করা
        FileOutputStream fileOut = new FileOutputStream("headerFooterExample.xlsx");
        workbook.write(fileOut);
        fileOut.close();

        // Workbook বন্ধ করা
        workbook.close();

        System.out.println("Excel ফাইলে Header এবং Footer সফলভাবে যোগ করা হয়েছে!");
    }
}

কোড ব্যাখ্যা:

  • header.setCenter(): শিরোনামের কেন্দ্রীয় অংশে কাস্টম টেক্সট যোগ করা হয়েছে।
  • footer.setCenter(): ফুটারের কেন্দ্রীয় অংশে পৃষ্ঠা নম্বর এবং মোট পৃষ্ঠার সংখ্যা যোগ করা হয়েছে।
  • HeaderFooter.PAGE_NUM এবং HeaderFooter.NUM_PAGES: পৃষ্ঠা নম্বর এবং মোট পৃষ্ঠার সংখ্যা এর জন্য ডিফল্ট কনস্ট্যান্ট।

২. Word ডকুমেন্টে Header এবং Footer যোগ করা

Apache POI এর HWPF এবং XWPF API এর মাধ্যমে আপনি Word ডকুমেন্টে Header এবং Footer যোগ করতে পারেন। এটি খুবই উপকারী যখন আপনি ডকুমেন্টে একাধিক পৃষ্ঠায় একই হেডার বা ফুটার রাখতে চান।

কোড উদাহরণ: Word ডকুমেন্টে Header এবং Footer যোগ করা

import org.apache.poi.xwpf.usermodel.*;

import java.io.FileOutputStream;
import java.io.IOException;

public class WordHeaderFooterExample {

    public static void main(String[] args) throws IOException {
        // Word Document তৈরি করা
        XWPFDocument document = new XWPFDocument();

        // Header এবং Footer তৈরি করা
        XWPFHeader header = document.createHeader(HeaderFooterType.DEFAULT);
        XWPFFooter footer = document.createFooter(HeaderFooterType.DEFAULT);

        // Header এ কাস্টম টেক্সট যোগ করা
        XWPFParagraph headerParagraph = header.createParagraph();
        XWPFRun headerRun = headerParagraph.createRun();
        headerRun.setText("This is the header text");

        // Footer এ কাস্টম টেক্সট যোগ করা
        XWPFParagraph footerParagraph = footer.createParagraph();
        XWPFRun footerRun = footerParagraph.createRun();
        footerRun.setText("This is the footer text");

        // কিছু প্যারাগ্রাফ যোগ করা
        for (int i = 0; i < 5; i++) {
            XWPFParagraph paragraph = document.createParagraph();
            XWPFRun run = paragraph.createRun();
            run.setText("This is paragraph " + (i + 1));
        }

        // Word ফাইল সেভ করা
        FileOutputStream fileOut = new FileOutputStream("wordHeaderFooterExample.docx");
        document.write(fileOut);
        fileOut.close();

        // Document বন্ধ করা
        document.close();

        System.out.println("Word ডকুমেন্টে Header এবং Footer সফলভাবে যোগ করা হয়েছে!");
    }
}

কোড ব্যাখ্যা:

  • document.createHeader(HeaderFooterType.DEFAULT): ডিফল্ট হেডার তৈরি করা।
  • header.createParagraph(): হেডারে একটি প্যারাগ্রাফ তৈরি করা এবং এতে কাস্টম টেক্সট যোগ করা।
  • document.createFooter(HeaderFooterType.DEFAULT): ডিফল্ট ফুটার তৈরি করা এবং এতে কাস্টম টেক্সট যোগ করা।

৩. PowerPoint স্লাইডে Header এবং Footer যোগ করা

Apache POI এর HSLF (PowerPoint) API ব্যবহার করে PowerPoint ফাইলেও Header এবং Footer যোগ করা যায়, যদিও PowerPoint এর ক্ষেত্রে হেডার এবং ফুটার সরাসরি স্লাইডের অংশ হিসেবে যুক্ত হয় না। তবে, আপনি স্লাইডে TextBox ব্যবহার করে টেক্সট যোগ করতে পারেন যা হেডার বা ফুটারের মতো কাজ করবে।

কোড উদাহরণ: PowerPoint স্লাইডে Footer যোগ করা

import org.apache.poi.hslf.usermodel.*;

import java.io.FileOutputStream;
import java.io.IOException;

public class PowerPointHeaderFooterExample {

    public static void main(String[] args) throws IOException {
        // PowerPoint ফাইল তৈরি করা
        HSLFSlideShow ppt = new HSLFSlideShow();

        // স্লাইড তৈরি করা
        HSLFSlide slide = ppt.createSlide();

        // Footer হিসেবে TextBox যোগ করা
        HSLFTextBox footerBox = new HSLFTextBox();
        footerBox.setText("This is the footer text");
        footerBox.setAnchor(new java.awt.Rectangle(500, 700, 200, 50));  // Footer অবস্থান

        // স্লাইডে Footer টেক্সট যোগ করা
        slide.addShape(footerBox);

        // PowerPoint ফাইল সেভ করা
        FileOutputStream fileOut = new FileOutputStream("powerPointHeaderFooterExample.ppt");
        ppt.write(fileOut);
        fileOut.close();

        // PowerPoint বন্ধ করা
        ppt.close();

        System.out.println("PowerPoint স্লাইডে Footer সফলভাবে যোগ করা হয়েছে!");
    }
}

কোড ব্যাখ্যা:

  • HSLFTextBox: একটি TextBox তৈরি করে ফুটার হিসেবে সেট করা।
  • footerBox.setAnchor(new java.awt.Rectangle(...)): TextBox এর অবস্থান স্লাইডে নির্ধারণ করা।

৪. Header এবং Footer ডিজাইন করার জন্য Best Practices

  • ডিফল্ট টেক্সট ব্যবহার করুন: শিরোনাম এবং ফুটারে যদি কোনো নির্দিষ্ট টেক্সট থাকে, তবে সেটি ডিফল্ট ভাবে তৈরি করুন, যাতে পরে সেটি পরিবর্তন করা যায়।
  • ভিন্ন ভিন্ন পৃষ্ঠার জন্য কাস্টম Header/Footer: প্রিন্টিংয়ের জন্য বা বিশেষ কনটেন্টের জন্য ভিন্ন ভিন্ন হেডার/ফুটার তৈরি করতে পারেন।
  • স্টাইলিং ব্যবহার করুন: হেডার এবং ফুটারের টেক্সটকে স্টাইল করতে Font, Color, Alignment ইত্যাদি প্রয়োগ করুন।

Apache POI এর মাধ্যমে আপনি সহজেই Excel, Word, এবং PowerPoint ফাইলের Header এবং Footer যোগ করতে পারেন। এতে আপনি শিরোনাম, ফুটার, পৃষ্ঠা নম্বর, তারিখ বা কাস্টম টেক্সট যোগ করতে পারবেন যা ডকুমেন্ট বা প্রেজেন্টেশনের পেশাদারিত্ব এবং কার্যকারিতা বাড়ায়। Excel এবং Word ফাইলের জন্য Header/Footer যুক্ত করা সহজ, তবে PowerPoint-এ এটা সাধারণত TextBox হিসেবে যোগ করা হয়।

Content added By
Promotion

Are you sure to start over?

Loading...