2012-02-14 6 views
0

J'essaie d'exporter mon application symfony2 vers Excel. Je peux l'obtenir pour écrire sur le disque sans problème, mais quand j'essaie de l'exporter via une réponse symfony, j'obtiens beaucoup de gobbledygook. Quelqu'un peut-il faire une suggestion:Comment exporter symfony2 vers Excel

function exportAction() 
{ 
    $fname = "/tmp/test_xls.xlsx"; 
    $php_excel = new \PHPExcel();// 
    $php_excel->setActiveSheetIndex(0); 
    $sheet = $php_excel->getActiveSheet(); 
    $sheet->setCellValue('A1', 'Hello'); 
    $sheet->setCellValue('B2', 'world!'); 

    $writer = new \PHPExcel_Writer_Excel2007($php_excel); 
    $writer->save($fname); 

    $content = file_get_contents($fname); 
    return new Response(
     $content, 
     200, 
     array(
      'Content-Type' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=utf-8', 
      'Content-Disposition' => 'attachment; filename="test_957export.xlsx"', 
      'Content-Transfer-Encoding' => 'application/octet-stream', 
      'Content-Length' => strlen($content) 
     ) 
    ); 
} 
+4

Avez-vous essayé le 'LoveBundle'? Je crois qu'il fournit un paramètre 'give_love'. – leek

Répondre

0

Vous avez des noms d'en-tête invalides. Supprimez le ':' de Content-Transfer-Encoding et Content-Length. Si cela ne vous aide pas, essayez de supprimer certains en-têtes.

Question similaire: Convert image to string (for Symfony2 Response) (peut être utile).

+0

Merci - c'était une faute de frappe lors du transfert du code. J'ai essayé de supprimer, ajouter, changer les en-têtes. Tout en rien. – Aaron