JasperReports একটি শক্তিশালী রিপোর্টিং টুল যা বিভিন্ন ধরনের আউটপুট ফরম্যাটে রিপোর্ট রপ্তানি করতে সক্ষম, তার মধ্যে একটি জনপ্রিয় ফরম্যাট হলো Excel (XLSX)। JasperReports আপনাকে Excel Export কাস্টমাইজ করার জন্য বিভিন্ন কনফিগারেশন প্রদান করে, যেমন cell styles, column widths, sheet names, data formatting, ইত্যাদি। এই নিবন্ধে, আমরা Excel Export এর জন্য কাস্টম কনফিগারেশন নিয়ে আলোচনা করব।
1. Excel Export Configuration Overview
JasperReports আপনাকে Excel ফরম্যাটে রিপোর্ট এক্সপোর্ট করার জন্য JasperExportManager.exportReportToXlsxFile() মেথড প্রদান করে। তবে আপনি চাইলে Excel এক্সপোর্ট কাস্টমাইজ করতে পারেন, যেমন:
- Cell Styles: ফন্ট, ব্যাকগ্রাউন্ড কালার, বর্ডার, টেক্সট অ্যালাইনমেন্ট ইত্যাদি।
- Column Width: কলামের প্রস্থ কাস্টমাইজ করা।
- Sheet Name: এক্সপোর্টের সময় শীটের নাম কাস্টমাইজ করা।
- Data Formatting: ডেটার ফরম্যাটিং, যেমন date এবং currency ফরম্যাট।
- Row and Column Headers: এক্সপোর্টের সময় হেডারের কাস্টমাইজেশন।
2. Basic Excel Export
Excel Export এর জন্য প্রথমে আপনাকে রিপোর্ট তৈরি করতে হবে এবং তারপর JasperExportManager ব্যবহার করে রিপোর্টটি XLSX ফরম্যাটে এক্সপোর্ট করতে হবে।
Basic Excel Export Example:
import net.sf.jasperreports.engine.*;
public class ExcelExportExample {
public static void main(String[] args) {
try {
// Compile the report from JRXML to JasperReport
JasperReport jasperReport = JasperCompileManager.compileReport("path/to/your_report.jrxml");
// Fill the report with data
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, new JREmptyDataSource());
// Export the report to Excel format
JasperExportManager.exportReportToXlsxFile(jasperPrint, "output/report.xlsx");
System.out.println("Excel report generated successfully!");
} catch (JRException e) {
e.printStackTrace();
}
}
}
এই কোডটি JRXML ফাইলকে JasperReport এ রূপান্তরিত করে এবং Excel (XLSX) ফরম্যাটে রিপোর্ট এক্সপোর্ট করে।
3. Customizing Excel Export
JasperReports-এ Excel export কাস্টমাইজ করার জন্য আপনি ExcelExportParameter ব্যবহার করতে পারেন। এটি আপনাকে cell styles, sheet name, column widths, row headers, এবং অন্যান্য কাস্টম অপশন সেট করতে সাহায্য করবে।
Custom Excel Export Example:
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.export.*;
import java.util.*;
public class CustomExcelExportExample {
public static void main(String[] args) {
try {
// Compile the report
JasperReport jasperReport = JasperCompileManager.compileReport("path/to/your_report.jrxml");
// Fill the report with data
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, new JREmptyDataSource());
// Set export parameters for Excel
JRExcelExporter exporter = new JRExcelExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "output/custom_report.xlsx");
// Customizing Excel export
exporter.setParameter(JRExcelExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_COLUMNS, Boolean.TRUE);
exporter.setParameter(JRExcelExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE);
exporter.setParameter(JRExcelExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);
// Customize Sheet name
Map<String, Object> parameters = new HashMap<>();
parameters.put("SheetName", "Employee Report");
exporter.setParameter(JRExcelExporterParameter.SHEET_NAME, "Employee Report");
// Export to Excel file
exporter.exportReport();
System.out.println("Custom Excel report generated successfully!");
} catch (JRException e) {
e.printStackTrace();
}
}
}
Custom Export Parameters:
JRExcelExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_COLUMNS: এই সেটিংটি এক্সেল শীটের মধ্যে ফাঁকা জায়গা (empty space) দূর করতে ব্যবহৃত হয়।JRExcelExporterParameter.IS_WHITE_PAGE_BACKGROUND: এক্সেল শীটের পৃষ্ঠার ব্যাকগ্রাউন্ড কালার কাস্টমাইজ করতে ব্যবহৃত হয়। যদি আপনি FALSE সেট করেন, তবে এটি প্রিন্ট করা পৃষ্ঠার ব্যাকগ্রাউন্ড কালার লুকাবে না।JRExcelExporterParameter.IS_ONE_PAGE_PER_SHEET: এক্সেল ফাইলে one page per sheet নির্ধারণ করতে ব্যবহৃত হয়।JRExcelExporterParameter.SHEET_NAME: শীটের নাম কাস্টমাইজ করতে ব্যবহৃত হয়।
4. Advanced Excel Export Customization
Excel export-এর আরও কাস্টমাইজেশনের জন্য আপনি Excel cell styles, column widths, headers, footers, এবং formulas কাস্টমাইজ করতে পারেন।
Excel Export with Column Width and Cell Style Customization:
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.export.*;
import net.sf.jasperreports.export.ooxml.*;
public class AdvancedExcelExportExample {
public static void main(String[] args) {
try {
// Compile the report
JasperReport jasperReport = JasperCompileManager.compileReport("path/to/your_report.jrxml");
// Fill the report with data
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, new JREmptyDataSource());
// Create an exporter for Excel
JRExcelExporter exporter = new JRExcelExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "output/advanced_report.xlsx");
// Customize the sheet
exporter.setParameter(JRExcelExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.TRUE);
// Set Column Widths
Map<Integer, Integer> columnWidths = new HashMap<>();
columnWidths.put(0, 20); // Set column 0 width to 20
columnWidths.put(1, 30); // Set column 1 width to 30
exporter.setParameter(JRExcelExporterParameter.COLUMN_WIDTHS, columnWidths);
// Set cell style for headers (Bold and Centered)
Map<String, Object> parameters = new HashMap<>();
parameters.put("HeaderStyle", "Bold and Centered");
exporter.setParameter(JRExcelExporterParameter.HEADER_STYLE, parameters);
// Export the report to Excel
exporter.exportReport();
System.out.println("Advanced Excel report generated successfully!");
} catch (JRException e) {
e.printStackTrace();
}
}
}
Excel Export Customizations:
- Column Widths: আপনি নির্দিষ্ট কলামের প্রস্থ কাস্টমাইজ করতে পারেন যেমন columnWidths.put(columnIndex, width)। এতে ডেটা আরও ভালোভাবে উপস্থাপিত হবে।
- Cell Styles: আপনি header এবং data cells এর জন্য styles নির্ধারণ করতে পারেন, যেমন ফন্ট সাইজ, স্টাইল, অ্যালাইনমেন্ট ইত্যাদি।
- Sheet Name: আপনি শীটের নাম কাস্টমাইজ করতে পারেন, যেমন Sheet1, Employee Report ইত্যাদি।
5. Formatting Data in Excel Export
Excel Export কাস্টমাইজ করার জন্য আপনি number formatting, date formatting, এবং currency formatting করতে পারেন।
Number and Currency Formatting Example:
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.export.*;
public class ExcelNumberFormattingExample {
public static void main(String[] args) {
try {
// Compile the report
JasperReport jasperReport = JasperCompileManager.compileReport("path/to/your_report.jrxml");
// Fill the report with data
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, new JREmptyDataSource());
// Set export parameters for Excel
JRExcelExporter exporter = new JRExcelExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "output/formatted_report.xlsx");
// Set number formatting for a column (e.g., format as currency)
exporter.setParameter(JRExcelExporterParameter.FORMAT_NUMBER, "$#,##0.00");
// Export the report
exporter.exportReport();
System.out.println("Formatted Excel report generated successfully!");
} catch (JRException e) {
e.printStackTrace();
}
}
}
- Currency Formatting: $#,##0.00 ফরম্যাটে সংখ্যা প্রদর্শন করা হবে, যেমন: $1,234.56।
- Date Formatting: আপনি yyyy-MM-dd বা MM/dd/yyyy এর মতো কাস্টম date formats ব্যবহার করতে পারেন।
- JasperReports-এ Excel Export কাস্টমাইজেশন অনেক গুরুত্বপূর্ণ, বিশেষ করে যখন আপনি আপনার রিপোর্টের layout, styles, data formatting, এবং cell styling কাস্টমাইজ করতে চান।
- Excel Export করতে JasperExportManager ব্যবহার করা যায় এবং JRExcelExporter ক্লাসের মাধ্যমে আরও কাস্টমাইজেশন করতে পারবেন।
- Column Widths, Cell Styles, Sheet Names, এবং Data Formatting সহ আপনি আপনার রিপোর্টের আউটপুটকে আরও পেশাদার এবং কাস্টমাইজড করতে পারবেন।
Read more