ฉันกำลังพยายามสร้างไฟล์ XLS และส่งไปยังเบราว์เซอร์ในการส่งแบบฟอร์ม แต่ฉันไม่สามารถหาวิธีที่จะทำได้ ฉันใช้โมดูล XLS Serialization แต่ฉันเปิดรับคำแนะนำอื่นๆ ทั้งหมดด้วยโมดูลนี้ ฉันสร้างบางมุมมองด้วยคุณลักษณะ XLS Export ได้สำเร็จ แต่ตอนนี้ฉันมีแบบฟอร์มและควรสร้างไฟล์ excel ในการส่งแบบฟอร์มโดยขึ้นอยู่กับข้อมูลที่ส่งมา
ฉันสร้างรหัสต่อไปนี้ แต่ถ้าฉันส่งแบบฟอร์ม ฉันจะไม่มีไฟล์ excel ให้ดาวน์โหลด:
คลาส MyForm ขยาย FormBase {
SerializerInterface ส่วนตัว $serializer;
สร้างฟังก์ชันคงที่สาธารณะ (ContainerInterface $container) {
ส่งคืน new static($container->get('serializer'));
}
ฟังก์ชั่นสาธารณะ __construct (SerializerInterface $serializer) {
$this->serializer = $ซีเรียลไลเซอร์;
}
// ลบ buildForm() ฯลฯ เพื่อความเรียบง่าย
ฟังก์ชันสาธารณะ submitForm (อาร์เรย์ &$form, FormStateInterface $form_state) {
$response = (StreamedResponse ใหม่ (ฟังก์ชัน () ใช้ ($selected_values) {
$this->serializer->serialize([[1, 2, 3], [4, 5, 6]], 'xlsx');
}))->ส่ง();
$form_state->setResponse($ตอบกลับ);
}
}