Я пытаюсь написать код макроса при экспорте 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))» «