Hallo alle, die ich benutze Liuggio Excel Bundle aber kann es nicht funktionieren:/Ich fügte hinzu und Option über meine Benutzerliste, um die Daten zu Excel exportieren, aber wenn geklickt wird passiert nichts, kein Download. könnte jemand mir eine Hand geben?Symfony Kann keine Daten nach Excel exportieren
vielleicht im Aufruf es falsch? oder es funktioniert, aber ich weiß nicht, wo es die Datei speichern? so nenne ich die Methode.
<a href="{{ path('excel_list') }}" class="btn btn-sm btn-info">Export Data</a>
Routing:
excel_list:
path: /excel_list
defaults: { _controller: PaginasUsersBundle:Default:ExcelExport }
hier ist die Methode meiner Controller:
//----------------------------------------------------------
//---------------------------Excel--------------------------
//----------------------------------------------------------
public function ExcelExportAction(Request $request)
{
$em=$this->getDoctrine()->getManager();
$query=$em->getRepository('PaginasUsersBundle:Users')
->createQueryBuilder('u')
->select('u.id, u.name, u.username, u.email')
->getQuery();
$result=$filterQuery->getResult();
$phpExcelObject = $this->get('phpexcel')->createPHPExcelObject();
$phpExcelObject->getProperties()
->setCreator("xxx")
->setLastModifiedBy("xxxx")
->setTitle("Excel Example")
->setSubject("Example")
->setDescription("Example List");
$phpExcelObject->setActiveSheetIndex(0);
$phpExcelObject->getActiveSheet()->setTile('Export Example');
$phpExcelObject->setACtiveSheetIndex(0)
->setCellValue('B2','ID')
->setCellValue('C2','Name')
->setCellValue('D2','Username')
->setCellValue('E2','Email');
//fijamos un ancho a las distintas columnas
$phpExcelObject->setActiveSheetIndex(0)
->getColumnDimension('B')
->setWidth(30);
$phpExcelObject->setActiveSheetIndex(0)
->getColumnDimension('C')
->setWidth(25);
$phpExcelObject->setActiveSheetIndex(0)
->getColumnDimension('D')
->setWidth(15);
$phpExcelObject->setActiveSheetIndex(0)
->getColumnDimension('E')
->setWidth(20);
$row=3;
foreach ($result as $item){
$phpExcelObject->setActiveSheetIndex(0)
->setCellValue('B'.$row, $item['id'])
->setCellValue('C'.$row, $item['name'])
->setCellValue('D'.$row, $item['username'])
->setCellValue('E'.$row, $item['email']);
$row ++;
}
$writer = $this->get('phpexcel')->createWriter($phpObject, 'Excel5');
$response = $this->get('phpexcel')->createStreamedREsponse($writer);
$dispositionHeader = $response->headers->makeDisposition(
ResponseHeaderBag::DISPOSITION_ATTACHMENT,
'userList.xls'
);
$response->headers->set('Content-Type', 'text/vnd.ms-excel; charset=utf-8');
$response->headers->set('Pragma', 'public');
$response->headers->set('Cache-control','maxage=1');
$response->headers->set('Content-Disposition', $dispositionHeader);
return $response;
}
Dank im Voraus
Was Dateien sagen meldet? – smarber
wahrscheinlich müssen Sie den Objektzugriff durch Array-Zugriff als Beispiel ersetzen, die Sie ersetzen müssen: '$ item-> getId()' mit '$ item ['id]' – Matteo
danke ich aktualisiert meine Aktion, aber immer noch keine Excel-Datei zum Download :/ –