Apache POI লাইব্রেরি PowerPoint (.pptx) এবং Excel (.xlsx) ফাইলের জন্য গ্রাফ এবং চিত্র তৈরি করার জন্য ব্যবহৃত হয়। Charts (যেমন Pie, Bar, Line ইত্যাদি) এবং Graphics (যেমন ছবি, শেপস ইত্যাদি) যোগ করা, ম্যানিপুলেট করা এবং কাস্টমাইজ করা সম্ভব POI এর মাধ্যমে।
এই গাইডে আমরা দেখব কিভাবে PowerPoint ফাইলের মধ্যে Charts এবং Graphics যোগ এবং ম্যানিপুলেট করা যায়।
১. PowerPoint ফাইলে Chart তৈরি করা
Apache POI এর XSLF API ব্যবহার করে PowerPoint ফাইলে Chart যোগ করা সম্ভব। এখানে আমরা একটি সাধারণ Pie Chart তৈরি করার প্রক্রিয়া দেখব। এছাড়াও, আপনি Bar, Line, এবং অন্যান্য ধরনের চার্ট তৈরি করতে পারবেন।
উদাহরণ: PowerPoint ফাইলে Pie Chart তৈরি করা
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFChart;
import org.apache.poi.ss.usermodel.DataFormat;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Sheet;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class XSLFChartExample {
public static void main(String[] args) throws IOException {
// নতুন PowerPoint ফাইল তৈরি করা
XMLSlideShow ppt = new XMLSlideShow();
// নতুন স্লাইড তৈরি
XSLFSlide slide = ppt.createSlide();
// Chart তৈরি
XSLFChart chart = slide.createChart();
// চার্টের ডেটা সেট করা
Sheet sheet = chart.getChartData();
Row row1 = sheet.createRow(0);
row1.createCell(0).setCellValue("Category 1");
row1.createCell(1).setCellValue(20);
Row row2 = sheet.createRow(1);
row2.createCell(0).setCellValue("Category 2");
row2.createCell(1).setCellValue(30);
Row row3 = sheet.createRow(2);
row3.createCell(0).setCellValue("Category 3");
row3.createCell(1).setCellValue(50);
// Chart প্রোপার্টি কনফিগার করা
chart.setChartType(XSLFChart.ChartType.PIE);
chart.setDataFormat(DataFormat.BAR);
// PowerPoint ফাইল সেভ করা
try (FileOutputStream out = new FileOutputStream(new File("example_with_chart.pptx"))) {
ppt.write(out);
}
// স্লাইডশো বন্ধ করা
ppt.close();
}
}
ব্যাখ্যা:
- XSLFChart: এটি PowerPoint ফাইলের চার্ট তৈরি এবং ম্যানিপুলেট করার জন্য ব্যবহৃত হয়।
- setChartType(): এই ফাংশন ব্যবহার করে আপনি চার্টের ধরন নির্ধারণ করতে পারেন, যেমন
ChartType.PIE,ChartType.BAR,ChartType.LINEইত্যাদি। - getChartData(): এই ফাংশন চার্টের ডেটা সেট করার জন্য ব্যবহৃত হয়।
২. PowerPoint ফাইলে Graphics (Shapes, Images) যোগ করা
Graphics যোগ করার জন্য, POI XSLF API ব্যবহার করে স্লাইডে বিভিন্ন ধরনের Shape, Image, Line, Rectangle, Circle ইত্যাদি যোগ করা সম্ভব।
উদাহরণ: PowerPoint ফাইলে Shape এবং Image যোগ করা
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFShape;
import org.apache.poi.xslf.usermodel.XSLFPictureData;
import org.apache.poi.xslf.usermodel.XSLFTextBox;
import org.apache.poi.xslf.usermodel.XSLFRectangle;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class XSLFGraphicsExample {
public static void main(String[] args) throws IOException {
// নতুন PowerPoint ফাইল তৈরি করা
XMLSlideShow ppt = new XMLSlideShow();
// নতুন স্লাইড তৈরি করা
XSLFSlide slide = ppt.createSlide();
// একটি Shape (Rectangle) তৈরি করা
XSLFRectangle rectangle = slide.createAutoShape();
rectangle.setAnchor(new java.awt.Rectangle(50, 50, 200, 100)); // Position and Size
rectangle.setLineColor(new java.awt.Color(255, 0, 0)); // Red border
rectangle.setFillColor(new java.awt.Color(0, 255, 0)); // Green fill
// একটি ছবি যোগ করা
FileInputStream imageStream = new FileInputStream(new File("image.png"));
XSLFPictureData pictureData = ppt.addPicture(imageStream, XSLFPictureData.PictureType.PNG);
slide.createPicture(pictureData);
// PowerPoint ফাইল সেভ করা
try (FileOutputStream out = new FileOutputStream(new File("example_with_graphics.pptx"))) {
ppt.write(out);
}
// স্লাইডশো বন্ধ করা
ppt.close();
}
}
ব্যাখ্যা:
- createAutoShape(): এটি একটি স্লাইডে স্বয়ংক্রিয় শেপ (যেমন রেকট্যাঙ্গেল, সার্কেল ইত্যাদি) তৈরি করতে ব্যবহৃত হয়।
- setAnchor(): এটি শেপের পজিশন এবং আকার নির্ধারণ করতে ব্যবহৃত হয়।
- setLineColor() এবং setFillColor(): এগুলি শেপের সীমানা এবং ফিল কালার সেট করতে ব্যবহৃত হয়।
- createPicture(): এটি স্লাইডে ছবি যোগ করতে ব্যবহৃত হয়।
৩. Excel ফাইলে Chart এবং Graphics ম্যানিপুলেশন
আপনি Excel ফাইলের জন্যও Chart এবং Graphics ম্যানিপুলেট করতে পারেন Apache POI ব্যবহার করে।
উদাহরণ: Excel ফাইলে Bar Chart তৈরি করা
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.ss.util.CellReference;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class ExcelChartExample {
public static void main(String[] args) throws IOException {
Workbook wb = new XSSFWorkbook();
Sheet sheet = wb.createSheet("Chart Example");
// ডেটা লিখা
Row row1 = sheet.createRow(0);
row1.createCell(0).setCellValue("Category 1");
row1.createCell(1).setCellValue(10);
Row row2 = sheet.createRow(1);
row2.createCell(0).setCellValue("Category 2");
row2.createCell(1).setCellValue(30);
Row row3 = sheet.createRow(2);
row3.createCell(0).setCellValue("Category 3");
row3.createCell(1).setCellValue(50);
// Chart তৈরি এবং ডেটা যুক্ত করা
Drawing<?> drawing = sheet.createDrawingPatriarch();
ClientAnchor anchor = wb.getCreationHelper().createClientAnchor();
anchor.setCol1(3);
anchor.setRow1(1);
Chart chart = drawing.createChart(anchor);
chart.plot(sheet, new CellRangeAddress(0, 2, 1, 1));
// Excel ফাইল সেভ করা
try (FileOutputStream out = new FileOutputStream(new File("example_with_chart.xlsx"))) {
wb.write(out);
}
wb.close();
}
}
ব্যাখ্যা:
- Drawing<?>: এটি Excel ফাইলে চার্ট এবং গ্রাফিক্স অঙ্কন করতে ব্যবহৃত হয়।
- createChart(): এটি Excel ফাইলে একটি চার্ট তৈরি করতে ব্যবহৃত হয়।
- ClientAnchor: এটি চার্টের পজিশন নির্ধারণ করতে ব্যবহৃত হয়।
সারাংশ
- Charts: Apache POI দিয়ে PowerPoint এবং Excel ফাইলে বিভিন্ন ধরনের চার্ট (Pie, Bar, Line ইত্যাদি) তৈরি করা সম্ভব। XSLFChart বা Chart API ব্যবহার করে চার্ট ডেটা এবং প্রপার্টি কনফিগার করা হয়।
- Graphics: PowerPoint স্লাইডে গ্রাফিক্স যেমন Shapes, Images, Lines যোগ করা যায় XSLF API এর মাধ্যমে। এটি স্লাইডের ভিজ্যুয়াল এলিমেন্টস কাস্টমাইজ করতে সাহায্য করে।
Apache POI লাইব্রেরি ব্যবহার করে আপনি Word এবং PowerPoint ডকুমেন্টে Charts যোগ করতে পারেন। এতে আপনি বিভিন্ন ধরনের গ্রাফিকাল রিপ্রেজেন্টেশন তৈরি করতে পারেন, যেমন Bar Chart, Pie Chart, Line Chart ইত্যাদি। নিচে Word এবং PowerPoint ফাইলগুলোতে চার্ট যোগ করার বিস্তারিত প্রক্রিয়া দেওয়া হয়েছে।
1. PowerPoint ফাইলে Charts যোগ করা
PowerPoint ডকুমেন্টে Charts যোগ করতে XSLF API ব্যবহার করা হয়। এখানে আমরা একটি Bar Chart তৈরি করার প্রক্রিয়া দেখব।
1.1 Dependencies যোগ করা (Maven/Gradle)
Maven এর মাধ্যমে Apache POI লাইব্রেরি যোগ করতে হবে:
<dependencies>
<!-- Apache POI for PowerPoint -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version>
</dependency>
</dependencies>
1.2 PowerPoint ফাইলে Bar Chart যোগ করা
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFChart;
import org.apache.poi.ss.usermodel.Chart;
import org.apache.poi.ss.usermodel.charts.ChartDataFactory;
import org.apache.poi.ss.usermodel.charts.CategoryChartData;
import org.apache.poi.ss.usermodel.charts.ChartData;
import java.awt.Color;
import java.io.FileOutputStream;
import java.io.IOException;
public class PowerPointChartExample {
public static void main(String[] args) throws IOException {
// PowerPoint ফাইল তৈরি করা
XMLSlideShow ppt = new XMLSlideShow();
// একটি স্লাইড তৈরি করা
XSLFSlide slide = ppt.createSlide();
// চার্ট তৈরি করা
XSLFChart chart = slide.createChart();
// Chart Data তৈরি করা
ChartData chartData = ChartDataFactory.createCategoryChartData();
// চার্টে ডেটা যোগ করা
CategoryChartData categoryChartData = (CategoryChartData) chartData;
categoryChartData.addCategory("Category 1", 10);
categoryChartData.addCategory("Category 2", 20);
categoryChartData.addCategory("Category 3", 30);
// চার্টে কালার এবং স্টাইলিং যোগ করা
chart.setChartData(categoryChartData);
chart.setFillColor(Color.RED);
// PowerPoint ফাইল সেভ করা
try (FileOutputStream out = new FileOutputStream("PowerPointWithChart.pptx")) {
ppt.write(out);
}
System.out.println("PowerPoint ফাইলটি সফলভাবে তৈরি করা হয়েছে!");
}
}
2. Word ফাইলে Charts যোগ করা
Word ডকুমেন্টে Charts যোগ করতে XWPF API ব্যবহার করা হয়। নিচে একটি Bar Chart তৈরি করার উদাহরণ দেওয়া হলো।
2.1 Dependencies যোগ করা (Maven/Gradle)
Maven এর মাধ্যমে Apache POI লাইব্রেরি যোগ করতে হবে:
<dependencies>
<!-- Apache POI for Word -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version>
</dependency>
</dependencies>
2.2 Word ফাইলে Bar Chart যোগ করা
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFPictureData;
import org.apache.poi.ss.usermodel.charts.*;
import org.apache.poi.ss.usermodel.*;
import java.io.*;
public class WordChartExample {
public static void main(String[] args) throws IOException {
// Word ডকুমেন্ট তৈরি করা
XWPFDocument doc = new XWPFDocument();
// চার্ট তৈরি করার জন্য ChartData তৈরি
Workbook wb = new XSSFWorkbook();
Sheet sheet = wb.createSheet("ChartSheet");
// ডেটা যোগ করা
Row row = sheet.createRow(0);
row.createCell(0).setCellValue("Category 1");
row.createCell(1).setCellValue(10);
row = sheet.createRow(1);
row.createCell(0).setCellValue("Category 2");
row.createCell(1).setCellValue(20);
row = sheet.createRow(2);
row.createCell(0).setCellValue("Category 3");
row.createCell(1).setCellValue(30);
// চার্ট সৃষ্টির জন্য ডিজাইন এবং কনফিগারেশন
Drawing drawing = sheet.createDrawingPatriarch();
Chart chart = drawing.createChart();
// চার্টের প্রকার নির্বাচন (Bar Chart)
chart.setChartType(ChartType.BAR);
// PowerPoint ডকুমেন্টে ছবি আকারে চার্ট সেভ
try (FileOutputStream out = new FileOutputStream("WordWithChart.docx")) {
doc.write(out);
}
System.out.println("Word ফাইলটি সফলভাবে তৈরি করা হয়েছে!");
}
}
3. Charts যোগ করার বিভিন্ন চার্ট প্রকার
- Bar Chart: একাধিক ক্যাটাগরির মধ্যে তুলনা দেখাতে ব্যবহৃত হয়।
- Line Chart: সময়ের সাথে ডেটার পরিবর্তন দেখানোর জন্য ব্যবহৃত হয়।
- Pie Chart: ডেটার অংশবিশেষের অনুপাত দেখানোর জন্য ব্যবহৃত হয়।
- Scatter Chart: এক্স এবং ওয়াই অক্ষের মধ্যে সম্পর্ক দেখাতে ব্যবহৃত হয়।
সারাংশ
- PowerPoint এবং Word ফাইলের মধ্যে Charts যোগ করতে Apache POI লাইব্রেরির XSLF (PowerPoint) এবং XWPF (Word) API ব্যবহার করা হয়।
- PowerPoint ফাইলের মধ্যে বিভিন্ন ধরনের চার্ট যেমন Bar Chart, Line Chart, Pie Chart যোগ করা সম্ভব।
- Word ডকুমেন্টে চার্ট যোগ করতে ChartData, Drawing এবং Chart ব্যবহৃত হয়।
এটি ছিল Word এবং PowerPoint ফাইলে Charts যোগ করার সংক্ষিপ্ত গাইড। আরও সাহায্য লাগলে জানাতে পারেন!
Apache POI ব্যবহার করে আপনি PowerPoint ডকুমেন্টে বিভিন্ন গ্রাফিক্যাল এলিমেন্ট যেমন Shapes, Pictures, এবং Diagrams যোগ এবং ম্যানেজ করতে পারেন। POI এর XSLF API, যা PPTX ফাইল ফরম্যাটের জন্য ব্যবহৃত হয়, আপনি এই গ্রাফিক্যাল এলিমেন্টগুলির সাথে কাজ করতে পারবেন।
এখানে আলোচনা করা হবে কিভাবে Shapes, Pictures, এবং Diagrams ম্যানেজ করা যায় এবং কীভাবে এগুলি PowerPoint ফাইলে যোগ করা যায়।
Shapes (শেপস) তৈরি এবং ম্যানেজ করা
PowerPoint ফাইলে Shapes যেমন Rectangle, Oval, Lines, Arrows, Stars, ইত্যাদি যোগ করা যায়। XSLF API তে শেপ তৈরি করা অত্যন্ত সহজ।
উদাহরণ: Rectangle এবং Oval Shape যোগ করা
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFAutoShape;
import org.apache.poi.xslf.usermodel.XSLFTextParagraph;
import org.apache.poi.xslf.usermodel.XSLFTextRun;
import org.apache.poi.sl.usermodel.ShapeType;
import java.io.FileOutputStream;
import java.io.IOException;
public class AddShapesToSlide {
public static void main(String[] args) {
try {
// Create a new PowerPoint presentation
XMLSlideShow ppt = new XMLSlideShow();
// Create a slide
XSLFSlide slide = ppt.createSlide();
// Add a rectangle shape to the slide
XSLFAutoShape rectangle = slide.createAutoShape();
rectangle.setShapeType(ShapeType.RECTANGLE);
rectangle.setAnchor(new java.awt.Rectangle(50, 50, 300, 150));
XSLFTextParagraph p1 = rectangle.addNewTextParagraph();
XSLFTextRun r1 = p1.addNewTextRun();
r1.setText("This is a rectangle shape!");
// Add an oval shape to the slide
XSLFAutoShape oval = slide.createAutoShape();
oval.setShapeType(ShapeType.ELLIPSE);
oval.setAnchor(new java.awt.Rectangle(100, 200, 250, 120));
XSLFTextParagraph p2 = oval.addNewTextParagraph();
XSLFTextRun r2 = p2.addNewTextRun();
r2.setText("This is an oval shape!");
// Save the PowerPoint presentation to a file
FileOutputStream out = new FileOutputStream("ShapesExample.pptx");
ppt.write(out);
out.close();
System.out.println("PPTX with shapes created successfully!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে একটি Rectangle এবং একটি Oval Shape PowerPoint Slide এ যোগ করা হয়েছে, এবং উভয় শেপে কিছু টেক্সট যোগ করা হয়েছে।
Pictures (ছবি) যোগ করা
PowerPoint ডকুমেন্টে ছবি যোগ করার জন্য XSLFPictureData ব্যবহার করা হয়। আপনি যেকোনো ধরনের ছবি (যেমন JPEG, PNG) PowerPoint ফাইলে যোগ করতে পারেন।
উদাহরণ: Picture (ছবি) যোগ করা
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFPictureData;
import org.apache.poi.xslf.usermodel.XSLFPicture;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class AddPictureToSlide {
public static void main(String[] args) {
try {
// Create a new PowerPoint presentation
XMLSlideShow ppt = new XMLSlideShow();
// Create a slide
XSLFSlide slide = ppt.createSlide();
// Add an image to the slide
File imgFile = new File("image.jpg"); // Ensure the image is in the correct path
byte[] pictureData = java.nio.file.Files.readAllBytes(imgFile.toPath());
XSLFPictureData picture = ppt.addPicture(pictureData, XSLFPictureData.PICTURE_TYPE_JPEG);
slide.createPicture(picture);
// Save the PowerPoint presentation to a file
FileOutputStream out = new FileOutputStream("PPTXwithImage.pptx");
ppt.write(out);
out.close();
System.out.println("PPTX with image created successfully!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে একটি ছবি PowerPoint স্লাইডে যোগ করা হয়েছে। image.jpg ফাইলটি স্লাইডে ইনসার্ট করা হয়েছে এবং সেভ করা হয়েছে PPTXwithImage.pptx নামে।
Diagrams (ডায়াগ্রামস) যোগ করা
PowerPoint ফাইলের মধ্যে Diagrams বা SmartArt যুক্ত করা Apache POI দিয়ে সরাসরি সম্ভব নয়। তবে, আপনি Shapes এবং Lines ব্যবহার করে মৌলিক ডায়াগ্রামস তৈরি করতে পারেন, যেমন Flowcharts, Organizational Charts, ইত্যাদি।
SmartArt বা আরও জটিল ডায়াগ্রাম তৈরির জন্য, আপনাকে PowerPoint সফটওয়্যার ব্যবহার করতে হবে বা POI এর পাশাপাশি অন্য কোন লাইব্রেরি ব্যবহার করতে হতে পারে।
সারাংশ
Apache POI এর মাধ্যমে PowerPoint ফাইল তৈরি করার সময় আপনি Shapes, Pictures, এবং Diagrams যোগ করতে পারেন। Shapes যেমন Rectangle, Oval, Arrow এবং Line খুব সহজে যোগ করা যায় এবং এগুলির মধ্যে টেক্সটও যোগ করা যায়। ছবি যোগ করার জন্য XSLFPictureData এবং XSLFSlide ব্যবহার করা হয়। তবে, Diagrams বা SmartArt তৈরি করা জন্য Apache POI সরাসরি সহায়তা দেয় না, তবে আপনি সাধারণ শেপস এবং লাইন ব্যবহার করে মৌলিক ডায়াগ্রাম তৈরি করতে পারেন।
Apache POI লাইব্রেরি ব্যবহার করে Microsoft Excel ডকুমেন্টে Custom Charts তৈরি করা সম্ভব। এই প্রক্রিয়াতে আমরা XSSFWorkbook এবং XSSFSheet ব্যবহার করে একাধিক চার্টের ধরণ (যেমন Bar Chart, Line Chart, Pie Chart) তৈরি করতে পারি এবং তাদের স্টাইল কাস্টমাইজ করতে পারি।
এখানে আমরা চারটি প্রধান ধাপ দেখব:
- Excel ডকুমেন্টে Custom Chart তৈরি করা।
- Chart-এর স্টাইল কাস্টমাইজেশন করা।
- 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 সহ চার্ট তৈরি করা সম্ভব, এবং প্রতিটি সিরিজের জন্য আলাদা ডেটা নির্ধারণ করা যেতে পারে।
Read more