Excel এ চার্ট তৈরি করা (Bar, Line, Pie ইত্যাদি)

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

222

Apache POI লাইব্রেরি ব্যবহার করে আপনি Excel ফাইলের মধ্যে চার্ট তৈরি করতে পারেন, যেমন Bar chart, Line chart, Pie chart ইত্যাদি। POI এর মাধ্যমে আপনি Excel ফাইল তৈরি, এডিট এবং ফরম্যাট করতে পারবেন, এবং সেই ফাইলে চার্ট যোগও করতে পারবেন।

এখানে Apache POI ব্যবহার করে Excel ফাইলে বিভিন্ন ধরনের চার্ট তৈরির প্রক্রিয়া দেওয়া হলো।


১. Apache POI দিয়ে Excel এ Chart তৈরি করা

POI লাইব্রেরি ব্যবহার করে Excel ফাইলে চার্ট যোগ করার জন্য XSSFDrawing, XSSFChart এবং XDDFChart ব্যবহার করা হয়। এই ক্লাসগুলো Excel শীটে চার্ট তৈরি এবং কনফিগার করার জন্য ব্যবহৃত হয়। চার্টের ধরণ এবং ডেটা নির্ভর করে আপনি কী ধরনের চার্ট তৈরি করতে চান।

Maven ডিপেন্ডেন্সি

প্রথমে, আপনাকে Maven প্রোজেক্টে poi-ooxml ডিপেন্ডেন্সি যুক্ত করতে হবে।

<dependencies>
    <!-- Apache POI (for working with Excel files and charts) -->
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>5.2.3</version>
    </dependency>
</dependencies>

২. Excel এ Bar Chart তৈরি করা

Bar Chart তৈরি করার জন্য আপনি XDDFChart ব্যবহার করতে পারেন, যেটি XSSFDrawing এর মাধ্যমে Excel শীটে চার্ট যোগ করে। নিচে একটি উদাহরণ দেওয়া হলো যেখানে Bar Chart তৈরি করা হয়েছে।

উদাহরণ: Bar Chart তৈরি করা

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

import org.apache.poi.xddf.usermodel.chart.*;

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

public class ExcelBarChartExample {
    public static void main(String[] args) throws IOException {
        // নতুন Excel ওয়ার্কবুক তৈরি
        XSSFWorkbook workbook = new XSSFWorkbook();
        XSSFSheet sheet = workbook.createSheet("ChartSheet");

        // ডেটা যোগ করা
        Object[][] data = {
                {"Month", "Sales"},
                {"January", 1500},
                {"February", 1800},
                {"March", 1200},
                {"April", 2200},
                {"May", 2000}
        };

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

        // Drawing চিত্র তৈরি
        XSSFDrawing drawing = sheet.createDrawingPatriarch();
        XSSFClientAnchor anchor = new XSSFClientAnchor();
        anchor.setCol1(3);
        anchor.setRow1(0);

        // Bar chart তৈরি
        XDDFChart chart = drawing.createChart(anchor);
        XDDFCategoryAxis bottomAxis = chart.createCategoryAxis(AxisPosition.BOTTOM);
        bottomAxis.setTitle("Months");

        XDDFValueAxis leftAxis = chart.createValueAxis(AxisPosition.LEFT);
        leftAxis.setTitle("Sales");

        // Chart data set করা
        XDDFChartData dataChart = chart.createData(ChartTypes.BAR, bottomAxis, leftAxis);
        XDDFChartData.Series series = dataChart.addSeries(
                new XDDFCategoryDataSource(XDDFCategoryDataSource.fromStringArray(new String[]{"January", "February", "March", "April", "May"})),
                new XDDFNumericalDataSource(new double[]{1500, 1800, 1200, 2200, 2000})
        );
        
        chart.plot(dataChart);

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

        workbook.close();
    }
}

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

  1. XSSFWorkbook এবং XSSFSheet ব্যবহার করে একটি নতুন Excel শীট তৈরি করা হয়।
  2. কিছু স্যাম্পল ডেটা যোগ করা হয় (যেমন মাস এবং সেলস ডেটা)।
  3. XDDFChart এবং XSSFDrawing ব্যবহার করে Bar Chart তৈরি করা হয়।
  4. createData() ব্যবহার করে ডেটা চার্টে যোগ করা হয় এবং plot() দিয়ে চার্ট প্রদর্শন করা হয়।

৩. Excel এ Line Chart তৈরি করা

Line Chart তৈরি করতে আমরা একইভাবে XDDFChart ব্যবহার করব, তবে এখানে ChartTypes.LINE ব্যবহার করা হবে।

উদাহরণ: Line Chart তৈরি করা

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.*;
import org.apache.poi.xddf.usermodel.chart.*;

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

public class ExcelLineChartExample {
    public static void main(String[] args) throws IOException {
        XSSFWorkbook workbook = new XSSFWorkbook();
        XSSFSheet sheet = workbook.createSheet("ChartSheet");

        // ডেটা যোগ করা
        Object[][] data = {
                {"Month", "Sales"},
                {"January", 1200},
                {"February", 1500},
                {"March", 1700},
                {"April", 1900},
                {"May", 2100}
        };

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

        // Drawing তৈরি করা
        XSSFDrawing drawing = sheet.createDrawingPatriarch();
        XSSFClientAnchor anchor = new XSSFClientAnchor();
        anchor.setCol1(3);
        anchor.setRow1(0);

        // Line chart তৈরি
        XDDFChart chart = drawing.createChart(anchor);
        XDDFCategoryAxis bottomAxis = chart.createCategoryAxis(AxisPosition.BOTTOM);
        bottomAxis.setTitle("Months");

        XDDFValueAxis leftAxis = chart.createValueAxis(AxisPosition.LEFT);
        leftAxis.setTitle("Sales");

        // Chart data set করা
        XDDFChartData dataChart = chart.createData(ChartTypes.LINE, bottomAxis, leftAxis);
        XDDFChartData.Series series = dataChart.addSeries(
                new XDDFCategoryDataSource(XDDFCategoryDataSource.fromStringArray(new String[]{"January", "February", "March", "April", "May"})),
                new XDDFNumericalDataSource(new double[]{1200, 1500, 1700, 1900, 2100})
        );
        
        chart.plot(dataChart);

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

        workbook.close();
    }
}

এই উদাহরণে Line Chart তৈরি করা হয়েছে যেখানে মাসের ওপর ভিত্তি করে Sales ডেটা প্রদর্শিত হচ্ছে।


৪. Excel এ Pie Chart তৈরি করা

Pie Chart তৈরি করার জন্যও একই পদ্ধতি অনুসরণ করা হবে, তবে এখানে ChartTypes.PIE ব্যবহার করা হবে।

উদাহরণ: Pie Chart তৈরি করা

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.*;
import org.apache.poi.xddf.usermodel.chart.*;

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

public class ExcelPieChartExample {
    public static void main(String[] args) throws IOException {
        XSSFWorkbook workbook = new XSSFWorkbook();
        XSSFSheet sheet = workbook.createSheet("ChartSheet");

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

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

        // Drawing তৈরি করা
        XSSFDrawing drawing = sheet.createDrawingPatriarch();
        XSSFClientAnchor anchor = new XSSFClientAnchor();
        anchor.setCol1(3);
        anchor.setRow1(0);

        // Pie chart তৈরি
        XDDFChart chart = drawing.createChart(anchor);
        chart.getCTChart().getPlotArea().addNewPieChart();

       

// Chart data set করা XDDFChartData dataChart = chart.createData(ChartTypes.PIE, null, null); XDDFChartData.Series series = dataChart.addSeries( new XDDFCategoryDataSource(XDDFCategoryDataSource.fromStringArray(new String[]{"A", "B", "C}"))), new XDDFNumericalDataSource(new double[]{30, 20, 50}) );

    chart.plot(dataChart);

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

    workbook.close();
}

}


---


- **Apache POI** ব্যবহার করে Excel ফাইলে বিভিন্ন ধরনের চার্ট (Bar, Line, Pie) তৈরি করা সম্ভব।
- **XDDFChart** এবং **XSSFDrawing** এর মাধ্যমে Excel শীটে চার্ট যোগ করা হয়।
- POI লাইব্রেরি **Bar**, **Line**, এবং **Pie** চার্টের জন্য প্রয়োজনীয় ফাংশনালিটি প্রদান করে, যা ডেটা visualization এর জন্য কার্যকরী।
Content added By
Promotion

Are you sure to start over?

Loading...