Apache POI ব্যবহার করে আপনি Excel, Word, এবং PowerPoint ডকুমেন্টে টেবিল এবং ছবি যোগ করতে পারেন। নিচে আমরা Excel এবং Word ডকুমেন্টে টেবিল এবং ছবি যোগ করার পদ্ধতি দেখব।
১. Excel ফাইলে টেবিল এবং ছবি যোগ করা (XSSF)
১.১ টেবিল যোগ করা
Apache POI ব্যবহার করে আপনি Excel ফাইলে সহজে টেবিল তৈরি করতে পারেন। এর জন্য XSSF বা HSSF API ব্যবহার করা হয় (XSSF XLSX ফাইলের জন্য এবং HSSF XLS ফাইলের জন্য)।
উদাহরণ: Excel ফাইলে টেবিল যোগ করা
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
import java.io.IOException;
public class ExcelTableExample {
public static void main(String[] args) throws IOException {
// এক্সেল ওয়ার্কবুক তৈরি
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Table Example");
// টেবিলের জন্য রো তৈরি
Row headerRow = sheet.createRow(0);
headerRow.createCell(0).setCellValue("Name");
headerRow.createCell(1).setCellValue("Age");
headerRow.createCell(2).setCellValue("Department");
Row row1 = sheet.createRow(1);
row1.createCell(0).setCellValue("John");
row1.createCell(1).setCellValue(30);
row1.createCell(2).setCellValue("HR");
Row row2 = sheet.createRow(2);
row2.createCell(0).setCellValue("Alice");
row2.createCell(1).setCellValue(28);
row2.createCell(2).setCellValue("IT");
// টেবিলের স্টাইলিং (যেমন: সেল বর্ডার)
CellStyle style = workbook.createCellStyle();
style.setBorderBottom(BorderStyle.THIN);
style.setBorderTop(BorderStyle.THIN);
style.setBorderRight(BorderStyle.THIN);
style.setBorderLeft(BorderStyle.THIN);
// সেল স্টাইল অ্যাপ্লাই করা
for (Row row : sheet) {
for (Cell cell : row) {
cell.setCellStyle(style);
}
}
// এক্সেল ফাইল সেভ করা
FileOutputStream fileOut = new FileOutputStream("excel_table_example.xlsx");
workbook.write(fileOut);
fileOut.close();
System.out.println("Excel ফাইলে টেবিল সফলভাবে যোগ করা হয়েছে!");
}
}
কোড ব্যাখ্যা:
- createRow(): টেবিলের রো তৈরি করা হয়েছে।
- createCell(): প্রতিটি রোতে সেল তৈরি করা হয়েছে।
- CellStyle: টেবিলের সেলগুলিতে বর্ডার অ্যাপ্লাই করা হয়েছে।
১.২ ছবি যোগ করা
Excel ফাইলে ছবি যোগ করতে, POI এ XSSFRichTextString এবং Drawing ব্যবহার করা হয়। এটি আপনার ফাইলের মধ্যে ছবি যুক্ত করতে সহায়তা করে।
উদাহরণ: Excel ফাইলে ছবি যোগ করা
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFPicture;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class ExcelImageExample {
public static void main(String[] args) throws IOException {
// এক্সেল ওয়ার্কবুক তৈরি
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Image Example");
// ছবি ফাইলটি খোলা
FileInputStream imageStream = new FileInputStream(new File("path_to_image.jpg"));
byte[] imageBytes = imageStream.readAllBytes();
int pictureIdx = workbook.addPicture(imageBytes, Workbook.PICTURE_TYPE_JPEG);
// ছবি আনার জন্য ড্রইং তৈরি
Drawing<?> drawing = sheet.createDrawingPatriarch();
ClientAnchor anchor = workbook.getCreationHelper().createClientAnchor();
anchor.setCol1(1);
anchor.setRow1(1);
// ছবি যোগ করা
XSSFPicture picture = (XSSFPicture) drawing.createPicture(anchor, pictureIdx);
// এক্সেল ফাইল সেভ করা
FileOutputStream fileOut = new FileOutputStream("excel_image_example.xlsx");
workbook.write(fileOut);
fileOut.close();
imageStream.close();
System.out.println("Excel ফাইলে ছবি সফলভাবে যোগ করা হয়েছে!");
}
}
কোড ব্যাখ্যা:
- addPicture(): ছবি ফাইলটি এক্সেল ফাইলে যোগ করার জন্য এটি ব্যবহার করা হয়।
- createClientAnchor(): ছবির অবস্থান নির্ধারণ করতে ব্যবহার করা হয়।
- createPicture(): ছবিটি শিটে যোগ করা হয়।
২. Word ফাইলে টেবিল এবং ছবি যোগ করা (XWPF)
Apache POI ব্যবহার করে আপনি Word (DOCX) ফাইলে টেবিল এবং ছবি যোগ করতে পারেন। এখানে XWPFDocument ব্যবহার করা হয় Word ডকুমেন্ট তৈরি এবং তার মধ্যে টেবিল ও ছবি যোগ করার জন্য।
২.১ টেবিল যোগ করা
উদাহরণ: Word ফাইলে টেবিল যোগ করা
import org.apache.poi.xwpf.usermodel.*;
import java.io.FileOutputStream;
import java.io.IOException;
public class WordTableExample {
public static void main(String[] args) throws IOException {
// Word ডকুমেন্ট তৈরি
XWPFDocument document = new XWPFDocument();
// টেবিল তৈরি
XWPFTable table = document.createTable();
// টেবিলের প্রথম রো তৈরি (হেডার)
XWPFTableRow headerRow = table.getRow(0);
headerRow.getCell(0).setText("Name");
headerRow.addNewTableCell().setText("Age");
headerRow.addNewTableCell().setText("Department");
// টেবিলের পরবর্তী রো তৈরি
XWPFTableRow row1 = table.createRow();
row1.getCell(0).setText("John");
row1.getCell(1).setText("30");
row1.getCell(2).setText("HR");
XWPFTableRow row2 = table.createRow();
row2.getCell(0).setText("Alice");
row2.getCell(1).setText("28");
row2.getCell(2).setText("IT");
// Word ফাইল সেভ করা
FileOutputStream fileOut = new FileOutputStream("word_table_example.docx");
document.write(fileOut);
fileOut.close();
System.out.println("Word ফাইলে টেবিল সফলভাবে যোগ করা হয়েছে!");
}
}
কোড ব্যাখ্যা:
- createTable(): টেবিল তৈরি করা হয়েছে।
- getRow() এবং createRow(): টেবিলের রো তৈরি করা হয়েছে।
২.২ ছবি যোগ করা
Word ফাইলে ছবি যোগ করার জন্য XWPFPicture ক্লাস ব্যবহার করা হয়।
উদাহরণ: Word ফাইলে ছবি যোগ করা
import org.apache.poi.xwpf.usermodel.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class WordImageExample {
public static void main(String[] args) throws IOException {
// Word ডকুমেন্ট তৈরি
XWPFDocument document = new XWPFDocument();
// ছবি ফাইলটি খোলা
FileInputStream imageStream = new FileInputStream(new File("path_to_image.jpg"));
// Word ফাইলে ছবি যোগ করা
XWPFPicture picture = document.createPicture(imageStream, XWPFDocument.PICTURE_TYPE_JPEG);
// Word ফাইল সেভ করা
FileOutputStream fileOut = new FileOutputStream("word_image_example.docx");
document.write(fileOut);
fileOut.close();
imageStream.close();
System.out.println("Word ফাইলে ছবি সফলভাবে যোগ করা হয়েছে!");
}
}
কোড ব্যাখ্যা:
- createPicture(): ছবিটি Word ডকুমেন্টে যোগ করার জন্য এটি ব্যবহার করা হয়।
সারাংশ
Apache POI ব্যবহার করে আপনি Excel এবং Word ডকুমেন্টে টেবিল এবং ছবি যোগ করতে পারেন। Excel ফাইলে XSSF বা HSSF ব্যবহার করে টেবিল এবং ছবি যোগ করা হয়, যেখানে Word ফাইলে XWPF ব্যবহার করা হয়। টেবিলের জন্য Row এবং Cell তৈরি করা হয়, এবং ছবির জন্য ClientAnchor ও Drawing ব্যবহার করা হয়।
Read more