Как открыть книгу XLSX защищенную паролем PHP?

132
29 мая 2019, 13:10

Подскажите как отрыть книгу excel защищенную паролем? В интернете не смог найти информацию в основном предлагается задать пароль книги. Пытаюсь открыть вот так

    use PhpOffice\PhpSpreadsheet\IOFactory;
    $imputFile = Yii::getAlias('@backend/web/uploads/') . "m.xlsx";
    $spreadsheet = IOFactory::load($imputFile);
    $spreadsheet->getSecurity()->setLockWindows(true);
    $spreadsheet->getSecurity()->setLockStructure(true);
    $spreadsheet->getSecurity()->setWorkbookPassword("922104");
    $sheet = $spreadsheet->getActiveSheet();
    echo $sheet->getCell('C10')->getValue() . "\n";

Если снять пароль с книжки то все читается и выводится на экран, стоит его поставить получаю ошибку: Your requested sheet index: -1 is out of bounds. The actual number of sheets is 0.

Answer 1

Только вручную!

  1. Создайте резервную копию файла excel.
  2. Измените расширение файла с .xlsx на .zip.
  3. Теперь извлеките все содержимое zip-файла.

Найдите xml целевого листа. Вы найдете его в каталоге xl -> worksheets.

  1. Откройте xml-файл целевого листа в редакторе xml.
  2. Найдите "sheetProtection" в этом XML-файле и удалите его.
  3. Сохраните отредактированный файл xml, и замените его на старый xml-файл в zip-файлах.
  4. Измените расширение с .zip на .xlsx.

Всё!

READ ALSO
пустые функции возвращают значение

пустые функции возвращают значение

Копался в коде laravel, просто глянуть что как, поучиться чему нибудь, и ума не приложу как такВот код:

126
как вывести по 4 записи в каждом слайде Bootstrap 4?

как вывести по 4 записи в каждом слайде Bootstrap 4?

есть такой код что выводит по 1 записи в слайде, а надо по 4 штНадо поставить условие (1-4 новость - ето 1 слайд, 5-8 новость - 2й слайд, 9-12 новость...

115
LAST_INSERT_ID , не получается вставить в таблицу

LAST_INSERT_ID , не получается вставить в таблицу

Пытаюсь в titles_id Title_info добавить LAST_INSERT_ID и не получаетсяВ другие таблицы добавляется спокойно да и в саму Title_info добавляется, если добавлять...

110