Я использую библиотеку ' PhpSpreadsheet ', чтобы создать файл Excel, сохранить в нем некоторые данные, а затем отправить его по электронной почте. Это строки кода, которые я использую для создания файла и защиты его паролем, затем сохраните его:
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$spreadsheet = new Spreadsheet();
$spreadsheet->setActiveSheetIndex(0);
$spreadsheet->getActiveSheet()->setCellValue('A1', 'ON');
$spreadsheet->getActiveSheet()->setCellValue('B1', 'SK');
$spreadsheet->getActiveSheet()->setCellValue('A2', $id);
$spreadsheet->getActiveSheet()->setCellValue('B2', $sd);
// Set document security
$spreadsheet->getSecurity()->setLockWindows(true);
$spreadsheet->getSecurity()->setLockStructure(true);
$spreadsheet->getSecurity()->setWorkbookPassword('PhpSpreadsheet');
// Set sheet security
$spreadsheet->getActiveSheet()->getProtection()->setPassword('PhpSpreadsheet');
$spreadsheet->getActiveSheet()->getProtection()->setSheet(true);
$spreadsheet->getActiveSheet()->getProtection()->setSort(true);
$spreadsheet->getActiveSheet()->getProtection()->setInsertRows(true);
$spreadsheet->getActiveSheet()->getProtection()->setFormatCells(true);
$writer = new Xlsx($spreadsheet);
$writer->save('temp_dir/ls.xlsx');
Все приведенные выше коды я получил из официальной документации здесь . Это только защищает ячейки листа от редактирования, удаления или добавления новых значений.
Хотя я хочу полностью защитить и скрыть лист, чтобы никто не мог видеть его содержимое без пароля? Я пробовал несколько способов, описанных в документации, но ни один из них не сделал того, что мне нужно. Может ли кто-нибудь помочь мне в этом?