Как написать макрос в phpsreadsheet laravel - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь написать код макроса при экспорте Excel с использованием phpspreadsheet 1.6, но после загрузки его с сервера макрос удаляется.

Я сохранил его как .xlsm, а писатель - .xlsx.

Я также пытался сохранить его как .xlsx, но он показывает мне сообщение об ошибке, что он поврежден или имеет неправильный формат.

При сохранении в формате .xlsm запрашивается восстановление после загрузки экспортированного Excel для восстановления и удаления кода макроса.

См. Мой код ниже:

 $macros = "Private Sub Workbook_Open()
With Application
    .Iteration = True
    .MaxIterations = 1000
    .MaxChange = 0.001
End With
ThisWorkbook.PrecisionAsDisplayed = True
End Sub";
        $spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();

 $spreadsheet->setMacrosCode($macros);

        $writer =   \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xlsx');
        header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
        header('Content-Disposition: attachment;filename="' . $details['month'] . '.xlsm"');
        header('Cache-Control: max-age=0');
        $writer->save("php://output");

После нажатия кнопки «Восстановить» отображается следующее сообщение: «Удаленная часть: /xl/vbaProject.bin part. (Visual Basic для приложений (VBA))» «

...