CellStyle এবং DataFormat ব্যবহার করে কাস্টম ফরম্যাটিং

ফরম্যাটিং এবং Cell Style - অ্যাপাচি পিওআই (Apache POI) - Java Technologies

216

Apache POI ব্যবহার করে Excel সেলের জন্য কাস্টম ফরম্যাটিং তৈরি করা সম্ভব, যা আপনি CellStyle এবং DataFormat ক্লাসের মাধ্যমে করতে পারেন। এই দুটি ক্লাসই সেল স্টাইলিং এবং নম্বর/তারিখ ফরম্যাটিং কাস্টমাইজ করার জন্য ব্যবহৃত হয়।

এখানে আমরা দেখব কিভাবে আপনি CellStyle এবং DataFormat ব্যবহার করে Excel সেলে কাস্টম ফরম্যাটিং অ্যাপ্লাই করতে পারেন।


১. CellStyle এর মাধ্যমে সেল স্টাইল তৈরি করা

CellStyle ক্লাসটি সেলের বিভিন্ন ধরনের ফরম্যাটিং, যেমন ফন্ট, অ্যালাইনমেন্ট, ব্যাকগ্রাউন্ড রঙ, বর্ডার, ইত্যাদি কাস্টমাইজ করতে ব্যবহৃত হয়। আপনি setDataFormat() মেথড ব্যবহার করে সেল ফরম্যাট (যেমন নম্বর, তারিখ, শতাংশ) নির্ধারণ করতে পারেন।

উদাহরণ: CellStyle এর মাধ্যমে কাস্টম নম্বর ফরম্যাটিং

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

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

public class CustomCellStyleExample {
    public static void main(String[] args) throws IOException {
        // XSSFWorkbook অবজেক্ট তৈরি
        XSSFWorkbook workbook = new XSSFWorkbook();

        // নতুন শীট তৈরি
        Sheet sheet = workbook.createSheet("Custom Cell Style");

        // সেল স্টাইল তৈরি
        CellStyle style = workbook.createCellStyle();

        // সেলের নম্বর ফরম্যাট তৈরি
        DataFormat format = workbook.createDataFormat();
        style.setDataFormat(format.getFormat("#,##0.00")); // হাজারের সেপারেটর সহ দশমিক ফরম্যাট

        // রো তৈরি
        Row row = sheet.createRow(0);

        // সেল তৈরি এবং কাস্টম স্টাইল অ্যাপ্লাই করা
        Cell cell = row.createCell(0);
        cell.setCellValue(1234567.891);
        cell.setCellStyle(style);

        // ফাইল আউটপুট স্ট্রিম তৈরি
        FileOutputStream fileOut = new FileOutputStream("customStyledWorkbook.xlsx");

        // এক্সেল ফাইল সেভ করা
        workbook.write(fileOut);
        fileOut.close();

        System.out.println("Excel ফাইল তৈরি হয়েছে এবং কাস্টম নম্বর ফরম্যাটিং অ্যাপ্লাই করা হয়েছে!");
    }
}

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

  • setDataFormat(): সেলটির নম্বর ফরম্যাট কাস্টমাইজ করে। এখানে #,##0.00 ফরম্যাটটি ব্যবহার করা হয়েছে, যা হাজারের সেপারেটর এবং দুটি দশমিক পয়েন্টের সাথে নম্বর প্রদর্শন করবে।
  • CellStyle: সেলের স্টাইল নির্ধারণ করা হয়েছে এবং স্টাইলের মাধ্যমে সেলের ভ্যালু প্রদর্শন করা হয়েছে।

২. CellStyle এবং DataFormat দিয়ে তারিখ ফরম্যাটিং

DataFormat ক্লাসটি তারিখের ফরম্যাটও নির্ধারণ করতে সাহায্য করে। তারিখের কাস্টম ফরম্যাটের জন্য আপনি setDataFormat() ব্যবহার করতে পারেন, এবং এর মাধ্যমে dd/mm/yyyy বা অন্য যেকোনো কাস্টম ফরম্যাটে তারিখ প্রদর্শন করা যায়।

উদাহরণ: তারিখের কাস্টম ফরম্যাটিং

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;

public class DateFormattingExample {
    public static void main(String[] args) throws IOException {
        // XSSFWorkbook অবজেক্ট তৈরি
        XSSFWorkbook workbook = new XSSFWorkbook();

        // নতুন শীট তৈরি
        Sheet sheet = workbook.createSheet("Date Formatting");

        // সেল স্টাইল তৈরি
        CellStyle style = workbook.createCellStyle();

        // তারিখের কাস্টম ফরম্যাট তৈরি
        DataFormat format = workbook.createDataFormat();
        style.setDataFormat(format.getFormat("dd/MM/yyyy")); // কাস্টম তারিখ ফরম্যাট

        // রো তৈরি
        Row row = sheet.createRow(0);

        // সেল তৈরি এবং কাস্টম তারিখ স্টাইল অ্যাপ্লাই করা
        Cell cell = row.createCell(0);
        cell.setCellValue(new Date());  // বর্তমান তারিখ
        cell.setCellStyle(style);

        // ফাইল আউটপুট স্ট্রিম তৈরি
        FileOutputStream fileOut = new FileOutputStream("dateFormattedWorkbook.xlsx");

        // এক্সেল ফাইল সেভ করা
        workbook.write(fileOut);
        fileOut.close();

        System.out.println("Excel ফাইল তৈরি হয়েছে এবং কাস্টম তারিখ ফরম্যাটিং অ্যাপ্লাই করা হয়েছে!");
    }
}

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

  • setDataFormat(): তারিখের জন্য কাস্টম ফরম্যাট নির্ধারণ করা হয়েছে। এখানে "dd/MM/yyyy" ব্যবহার করা হয়েছে, যার মানে দিন/মাস/বছর ফরম্যাটে তারিখ প্রদর্শিত হবে।
  • new Date(): বর্তমান তারিখ সেট করা হয়েছে।

৩. CellStyle দিয়ে বিভিন্ন Alignment (অ্যালাইনমেন্ট) সেট করা

সেলটির ভিতরের টেক্সট বা ডেটা সঠিকভাবে দেখানোর জন্য আপনি HorizontalAlignment এবং VerticalAlignment ব্যবহার করে সেলের অ্যালাইনমেন্ট কাস্টমাইজ করতে পারেন।

উদাহরণ: সেলের অ্যালাইনমেন্ট কাস্টমাইজ করা

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

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

public class AlignmentExample {
    public static void main(String[] args) throws IOException {
        // XSSFWorkbook অবজেক্ট তৈরি
        XSSFWorkbook workbook = new XSSFWorkbook();

        // নতুন শীট তৈরি
        Sheet sheet = workbook.createSheet("Alignment Example");

        // সেল স্টাইল তৈরি
        CellStyle style = workbook.createCellStyle();

        // হরাইজন্টাল এবং ভারটিক্যাল অ্যালাইনমেন্ট সেট করা
        style.setAlignment(HorizontalAlignment.CENTER);   // কেন্দ্রবিন্দু অ্যালাইনমেন্ট
        style.setVerticalAlignment(VerticalAlignment.CENTER); // সেল verticle সেন্টারে

        // রো তৈরি
        Row row = sheet.createRow(0);

        // সেল তৈরি এবং অ্যালাইনমেন্ট স্টাইল অ্যাপ্লাই করা
        Cell cell = row.createCell(0);
        cell.setCellValue("Centered Text");
        cell.setCellStyle(style);

        // ফাইল আউটপুট স্ট্রিম তৈরি
        FileOutputStream fileOut = new FileOutputStream("alignmentStyledWorkbook.xlsx");

        // এক্সেল ফাইল সেভ করা
        workbook.write(fileOut);
        fileOut.close();

        System.out.println("Excel ফাইল তৈরি হয়েছে এবং সেল অ্যালাইনমেন্ট অ্যাপ্লাই করা হয়েছে!");
    }
}

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

  • setAlignment(HorizontalAlignment.CENTER): সেলের টেক্সটকে অনুভূমিকভাবে কেন্দ্রবিন্দুতে রাখে।
  • setVerticalAlignment(VerticalAlignment.CENTER): সেলের টেক্সটকে 수직ভাবে কেন্দ্রবিন্দুতে রাখে।

৪. CellStyle দিয়ে সেল বর্ডার ফরম্যাটিং

সেলের চারপাশে বর্ডার অ্যাপ্লাই করতে setBorderTop(), setBorderBottom(), setBorderLeft(), এবং setBorderRight() মেথডগুলি ব্যবহার করতে পারেন।

উদাহরণ: সেলে বর্ডার ফরম্যাটিং

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

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

public class BorderFormattingExample {
    public static void main(String[] args) throws IOException {
        // XSSFWorkbook অবজেক্ট তৈরি
        XSSFWorkbook workbook = new XSSFWorkbook();

        // নতুন শীট তৈরি
        Sheet sheet = workbook.createSheet("Border Formatting");

        // সেল স্টাইল তৈরি
        CellStyle style = workbook.createCellStyle();

        // বর্ডার স্টাইল সেট করা
        style.setBorderTop(BorderStyle.THIN);
        style.setBorderBottom(BorderStyle.THIN);
        style.setBorderLeft(BorderStyle.THIN);
        style.setBorderRight(BorderStyle.THIN);

        // রো তৈরি
        Row row = sheet.createRow(0);

        // সেল তৈরি এবং বর্ডার স্টাইল অ্যাপ্লাই করা
        Cell cell = row.createCell(0);
        cell.setCellValue("Cell with Border");
        cell.setCellStyle(style);

        // ফাইল আউটপুট স্ট্রিম তৈরি
        FileOutputStream fileOut = new FileOutputStream("borderStyledWorkbook.xlsx");

        // এক্সেল ফাইল সেভ করা
        workbook.write(fileOut);
        fileOut.close();

        System.out.println("Excel ফাইল তৈরি হয়েছে এবং সেল বর্ডার ফরম্যাটিং অ্যাপ্লাই করা হয়েছে!");
    }
}

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

  • setBorderTop(), setBorderBottom(), setBorderLeft(), setBorderRight(): সেলের চারপাশে thin বর্ডার অ্যাপ্লাই করা হয়েছে।

সারাংশ

Apache POI তে CellStyle এবং DataFormat ব্যবহার করে কাস্টম ফরম্যাটিং সহজেই করা যায়। আপনি সেল স্টাইলিং (ফন্ট, অ্যালাইনমেন্ট, বর্ডার) এবং ডেটা ফরম্যাটিং (নম্বর, তারিখ) কাস্টমাইজ করে আরও ভালো রিপোর্ট এবং স্পষ্ট ডেটা প্রদর্শন তৈরি করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...