Я пытаюсь создать файл XLS и отправить его в браузер при отправке формы, но не могу понять, как это сделать. Я использую модуль сериализации XLS, но я открыт для всех других предложений.С помощью этого модуля я успешно создал несколько представлений с функцией экспорта XLS. Но теперь у меня есть форма, и файл excel должен быть создан при отправке формы в зависимости от отправленных данных.
Я создал следующий код, но если я отправлю форму, я не получу файл excel для загрузки:
класс MyForm расширяет FormBase {
частный SerializerInterface $serializer;
общедоступная статическая функция create(ContainerInterface $container) {
вернуть новый статический ($ контейнер-> получить ('сериализатор'));
}
публичная функция __construct (SerializerInterface $ сериализатор) {
$this->сериализатор = $сериализатор;
}
// Удалены buildForm() и т. д. для простоты
публичная функция submitForm (массив и $ форма, FormStateInterface $ form_state) {
$response = (новый StreamedResponse(функция () использования ($selected_values) {
$this->serializer->serialize([[1, 2, 3], [4, 5, 6]], 'xlsx');
}))->отправить();
$form_state->setResponse($response);
}
}