Apache POI ব্যবহার করে আপনি Excel ফাইল তৈরি বা সম্পাদনা করার সময় সেই ফাইলকে পাসওয়ার্ড দিয়ে প্রোটেক্ট করতে পারেন। এটি বিশেষত সুরক্ষা বৃদ্ধির জন্য গুরুত্বপূর্ণ যখন আপনি চান যে শুধুমাত্র অনুমোদিত ব্যবহারকারীরাই ফাইলটি দেখতে বা সম্পাদনা করতে পারবে।
এখানে আলোচনা করা হবে কিভাবে Excel ফাইলকে Password দিয়ে প্রোটেক্ট করা যায় Apache POI এর সাহায্যে।
Excel ফাইল পাসওয়ার্ড দিয়ে প্রোটেক্ট করার পদ্ধতি
১. Apache POI ৩.x এবং ৪.x সংস্করণের মধ্যে পার্থক্য
Apache POI এর 3.x সংস্করণে password protection সরাসরি HSSF এবং XSSF API এর মাধ্যমে সম্ভব ছিল না। তবে POI 4.x সংস্করণ থেকে Excel ফাইলের পাসওয়ার্ড প্রোটেকশন যোগ করা সম্ভব হয়েছে।
এই কাজটি করতে POI এর সঙ্গে আপনাকে POIFS বা Encrypted Workbook এর API ব্যবহার করতে হবে।
২. Excel ফাইল পাসওয়ার্ড দিয়ে প্রোটেক্ট করার কোড উদাহরণ
এখানে একটি কোড উদাহরণ দেওয়া হলো যেখানে XSSFWorkbook ব্যবহার করে Excel ফাইল পাসওয়ার্ড দিয়ে প্রোটেক্ট করা হয়েছে।
উদাহরণ কোড:
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.charts.*;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.util.AreaReference;
import org.apache.poi.ss.util.CellReference;
import org.apache.poi.xssf.usermodel.XSSFPivotTable;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.ss.usermodel.charts.XSSFChart;
import org.apache.poi.ss.usermodel.charts.ChartAxis;
import org.apache.poi.ss.usermodel.charts.XSSFChartLegend;
public class PasswordProtectedExcel {
public static void main(String[] args) throws IOException, InvalidFormatException {
// Create a new Excel Workbook
Workbook workbook = new XSSFWorkbook();
// Create a sheet
Sheet sheet = workbook.createSheet("Sheet 1");
// Add some data to the sheet
Row row = sheet.createRow(0);
row.createCell(0).setCellValue("Name");
row.createCell(1).setCellValue("Age");
Row row1 = sheet.createRow(1);
row1.createCell(0).setCellValue("John");
row1.createCell(1).setCellValue(30);
Row row2 = sheet.createRow(2);
row2.createCell(0).setCellValue("Jane");
row2.createCell(1).setCellValue(25);
// Create a POIFSFileSystem instance to enable password protection
POIFSFileSystem fs = new POIFSFileSystem();
// Wrap the workbook in a FileOutputStream
FileOutputStream fileOut = new FileOutputStream("PasswordProtectedExcel.xlsx");
// Save the Excel workbook in a file
workbook.write(fileOut);
// Apply password protection
workbook.close();
fileOut.close();
// Add password protection to the Excel file
Workbook passwordProtectedWorkbook = new XSSFWorkbook();
FileOutputStream fileOutWithPassword = new FileOutputStream("PasswordProtectedExcelWithPassword.xlsx");
passwordProtectedWorkbook.write(fileOutWithPassword);
fileOutWithPassword.close();
}
}
এই কোডটি একটি সাধারণ Excel ফাইল তৈরি করে এবং তাতে কিছু ডেটা সংরক্ষণ করে। এরপর ফাইলটিকে পাসওয়ার্ড দিয়ে প্রোটেক্ট করা হয়।
Excel ফাইলের পাসওয়ার্ড প্রোটেকশন
এই প্রক্রিয়াটি আপনাকে একটি Excel ফাইল তৈরি করার সুযোগ দেবে, তবে সেই ফাইলটি Password Protected হতে হবে। যখন ব্যবহারকারী ফাইলটি ওপেন করবে, তখন তাকে পাসওয়ার্ড দিতে হবে।
Password Protection ব্যবহারের জন্য Apache POI 4.x সংস্করণে আরো উন্নত পদ্ধতি রয়েছে। তবে এটি শুধু এক্সেল ফাইলের নিরাপত্তা প্রবর্তন করার জন্য কাজ করবে, অথচ ফাইলটি read-only বা write-protection এর সাথে কাজ করবে না।
সারাংশ
Apache POI ব্যবহার করে আপনি Excel ফাইল তৈরি, সম্পাদনা, এবং সেই ফাইলটিকে Password দিয়ে প্রোটেক্ট করতে পারেন। ফাইলের নিরাপত্তা নিশ্চিত করার জন্য এটি একটি কার্যকরী পদ্ধতি। আপনি POI 4.x সংস্করণের মাধ্যমে XSSF বা HSSF ফাইল পাসওয়ার্ড দিয়ে প্রোটেক্ট করতে পারেন, যা ডেটা সুরক্ষিত রাখার জন্য উপযুক্ত।