Custom Charts তৈরি এবং স্টাইল কাস্টমাইজেশন

Charts এবং Graphics ম্যানিপুলেশন - অ্যাপাচি পিওআই (Apache POI) - Java Technologies

179

Apache POI লাইব্রেরি ব্যবহার করে Microsoft Excel ডকুমেন্টে Custom Charts তৈরি করা সম্ভব। এই প্রক্রিয়াতে আমরা XSSFWorkbook এবং XSSFSheet ব্যবহার করে একাধিক চার্টের ধরণ (যেমন Bar Chart, Line Chart, Pie Chart) তৈরি করতে পারি এবং তাদের স্টাইল কাস্টমাইজ করতে পারি।

এখানে আমরা চারটি প্রধান ধাপ দেখব:

  1. Excel ডকুমেন্টে Custom Chart তৈরি করা।
  2. Chart-এর স্টাইল কাস্টমাইজেশন করা।
  3. Chart-এর ডেটা সিরিজ সংযোগ করা।

১. Custom Chart তৈরি করা

Apache POI লাইব্রেরি ব্যবহার করে Excel ডকুমেন্টে Custom Chart তৈরি করার জন্য আমাদের প্রথমে ডেটা তৈরি করতে হবে, তারপর ওই ডেটার উপর ভিত্তি করে চার্ট তৈরি করতে হবে।

উদাহরণ: Excel ডকুমেন্টে একটি Basic Bar Chart তৈরি করা

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

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

public class CreateCustomChartExample {
    public static void main(String[] args) throws IOException {
        // নতুন Excel ডকুমেন্ট তৈরি করা
        XSSFWorkbook workbook = new XSSFWorkbook();
        XSSFSheet sheet = workbook.createSheet("ChartSheet");

        // ডেটা যোগ করা
        Object[][] data = {
            {"Category", "Value"},
            {"A", 10},
            {"B", 20},
            {"C", 30},
            {"D", 40},
            {"E", 50}
        };

        int rowNum = 0;
        for (Object[] row : data) {
            Row sheetRow = sheet.createRow(rowNum++);
            int colNum = 0;
            for (Object cellValue : row) {
                Cell cell = sheetRow.createCell(colNum++);
                if (cellValue instanceof String) {
                    cell.setCellValue((String) cellValue);
                } else if (cellValue instanceof Integer) {
                    cell.setCellValue((Integer) cellValue);
                }
            }
        }

        // চার্ট তৈরি করা
        XSSFDrawing drawing = (XSSFDrawing) sheet.createDrawingPatriarch();
        XSSFChart chart = drawing.createChart(new XSSFClientAnchor());
        chart.setTitleText("Sample Bar Chart");
        chart.setTitleOverlay(false);

        // ডেটা রেঞ্জ নির্ধারণ করা
        XSSFRichTextString categories = new XSSFRichTextString("A, B, C, D, E");
        XSSFRichTextString values = new XSSFRichTextString("10, 20, 30, 40, 50");

        // চার্টের সিরিজ যোগ করা
        chart.createBarChart(categories, values);

        // ফাইল সেভ করা
        try (FileOutputStream out = new FileOutputStream("CustomBarChartExample.xlsx")) {
            workbook.write(out);
        }

        workbook.close();
    }
}

২. Chart-এর স্টাইল কাস্টমাইজেশন

চার্ট তৈরি হওয়ার পরে আমরা তার স্টাইল কাস্টমাইজ করতে পারি, যেমন চার্টের বর্ডার, ব্যাকগ্রাউন্ড, এবং সিরিজের রঙ পরিবর্তন করা।

উদাহরণ: Chart স্টাইল কাস্টমাইজ করা (Bar Chart এর সিরিজের রঙ পরিবর্তন)

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

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

public class CustomizeChartStyleExample {
    public static void main(String[] args) throws IOException {
        // নতুন Excel ডকুমেন্ট তৈরি করা
        XSSFWorkbook workbook = new XSSFWorkbook();
        XSSFSheet sheet = workbook.createSheet("ChartSheet");

        // ডেটা যোগ করা
        Object[][] data = {
            {"Category", "Value"},
            {"A", 10},
            {"B", 20},
            {"C", 30},
            {"D", 40},
            {"E", 50}
        };

        int rowNum = 0;
        for (Object[] row : data) {
            Row sheetRow = sheet.createRow(rowNum++);
            int colNum = 0;
            for (Object cellValue : row) {
                Cell cell = sheetRow.createCell(colNum++);
                if (cellValue instanceof String) {
                    cell.setCellValue((String) cellValue);
                } else if (cellValue instanceof Integer) {
                    cell.setCellValue((Integer) cellValue);
                }
            }
        }

        // চার্ট তৈরি করা
        XSSFDrawing drawing = (XSSFDrawing) sheet.createDrawingPatriarch();
        XSSFChart chart = drawing.createChart(new XSSFClientAnchor());
        chart.setTitleText("Customized Bar Chart");
        chart.setTitleOverlay(false);

        // ডেটা রেঞ্জ নির্ধারণ করা
        XSSFRichTextString categories = new XSSFRichTextString("A, B, C, D, E");
        XSSFRichTextString values = new XSSFRichTextString("10, 20, 30, 40, 50");

        // চার্টের সিরিজ যোগ করা
        chart.createBarChart(categories, values);

        // সিরিজের রঙ কাস্টমাইজ করা (উদাহরণস্বরূপ, সব সিরিজের রঙ লাল করা)
        chart.setSeriesColor(0, new XSSFColor(new java.awt.Color(255, 0, 0)));  // লাল রঙ

        // ফাইল সেভ করা
        try (FileOutputStream out = new FileOutputStream("CustomizedChartExample.xlsx")) {
            workbook.write(out);
        }

        workbook.close();
    }
}

৩. Chart ডেটা সিরিজ কাস্টমাইজ করা

আপনি প্রতিটি সিরিজের জন্য আলাদা আলাদা ডেটা প্রদান করতে পারেন, এবং সিরিজের নাম, রঙ, টাইপ ইত্যাদি কাস্টমাইজ করতে পারেন। এটি XSSFChart এর মাধ্যমে করা যায়।

উদাহরণ: Multiple Series সহ Custom Chart তৈরি করা

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

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

public class MultiSeriesChartExample {
    public static void main(String[] args) throws IOException {
        // নতুন Excel ডকুমেন্ট তৈরি করা
        XSSFWorkbook workbook = new XSSFWorkbook();
        XSSFSheet sheet = workbook.createSheet("ChartSheet");

        // ডেটা যোগ করা
        Object[][] data = {
            {"Category", "Series 1", "Series 2"},
            {"A", 10, 15},
            {"B", 20, 25},
            {"C", 30, 35},
            {"D", 40, 45},
            {"E", 50, 55}
        };

        int rowNum = 0;
        for (Object[] row : data) {
            Row sheetRow = sheet.createRow(rowNum++);
            int colNum = 0;
            for (Object cellValue : row) {
                Cell cell = sheetRow.createCell(colNum++);
                if (cellValue instanceof String) {
                    cell.setCellValue((String) cellValue);
                } else if (cellValue instanceof Integer) {
                    cell.setCellValue((Integer) cellValue);
                }
            }
        }

        // চার্ট তৈরি করা
        XSSFDrawing drawing = (XSSFDrawing) sheet.createDrawingPatriarch();
        XSSFChart chart = drawing.createChart(new XSSFClientAnchor());
        chart.setTitleText("Multi-Series Chart");
        chart.setTitleOverlay(false);

        // ডেটা রেঞ্জ নির্ধারণ করা
        XSSFRichTextString categories = new XSSFRichTextString("A, B, C, D, E");
        XSSFRichTextString series1 = new XSSFRichTextString("10, 20, 30, 40, 50");
        XSSFRichTextString series2 = new XSSFRichTextString("15, 25, 35, 45, 55");

        // সিরিজ তৈরি করা
        chart.createLineChart(categories, series1);
        chart.createLineChart(categories, series2);

        // ফাইল সেভ করা
        try (FileOutputStream out = new FileOutputStream("MultiSeriesChartExample.xlsx")) {
            workbook.write(out);
        }

        workbook.close();
    }
}

সারাংশ

  • Apache POI ব্যবহার করে Excel ডকুমেন্টে Custom Charts তৈরি করা সম্ভব।
  • XSSFDrawing এবং XSSFChart ব্যবহার করে বিভিন্ন ধরনের চার্ট তৈরি করা যায়, যেমন Bar Chart, Line Chart, এবং Pie Chart
  • আপনি Chart Styles কাস্টমাইজ করতে পারেন, যেমন সিরিজের রঙ পরিবর্তন করা, গ্রিডলাইন কাস্টমাইজ করা, চার্টের বর্ডার পরিবর্তন করা।
  • Multiple Data Series সহ চার্ট তৈরি করা সম্ভব, এবং প্রতিটি সিরিজের জন্য আলাদা ডেটা নির্ধারণ করা যেতে পারে।
Content added By
Promotion

Are you sure to start over?

Loading...