Как полностью защитить паролем содержимое файла Excel в php - PullRequest
1 голос
/ 02 августа 2020

Я использую библиотеку ' 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');

Все приведенные выше коды я получил из официальной документации здесь . Это только защищает ячейки листа от редактирования, удаления или добавления новых значений.

Хотя я хочу полностью защитить и скрыть лист, чтобы никто не мог видеть его содержимое без пароля? Я пробовал несколько способов, описанных в документации, но ни один из них не сделал того, что мне нужно. Может ли кто-нибудь помочь мне в этом?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...