How to use PHPExcel correctly with Symfony 2

前端 未结 6 1888
情话喂你
情话喂你 2020-12-24 09:51

I need to use PHPExcel with a Symfony2 project. Anyone know how to set up the project correctly to use the library? Should i put it in the vendor directory? Wha

6条回答
  •  感动是毒
    2020-12-24 10:00

    Actually, to do it right you need to follow next steps:

    • Edit your deps file and add dependency from the PHPExcel
    [PHPExcel]
    git=http://github.com/PHPOffice/PHPExcel.git
    target=/phpexcel
    version=origin/master
    
    • Run php bin/vendors install in order to install all missing dependencies (PHPExcel in our case)

    • Update prefixes section in app/autoload.php:

    $loader->registerPrefixes(array(
        // ...
        'PHPExcel'         => __DIR__.'/../vendor/phpexcel/Classes',
    ));
    
    • Done. Now, you can use it in your bundle's controller (code based on PHPExcel example from Tests/01simple-download-xls.php):
    getProperties()->setCreator("Me")
                       ->setLastModifiedBy("Someone")
                       ->setTitle("My first demo")
                       ->setSubject("Demo Document");
           // Add some data
           $objPHPExcel->setActiveSheetIndex(0)
                       ->setCellValue('A1', 'Hello')
                       ->setCellValue('B2', 'world!')
                       ->setCellValue('C1', 'Hello')
                       ->setCellValue('D2', 'world!');
           // Set active sheet index to the first sheet
           $objPHPExcel->setActiveSheetIndex(0);
    
           // Redirect output to a client’s web browser (Excel5)
           $response->headers->set('Content-Type', 'application/vnd.ms-excel');
           $response->headers->set('Content-Disposition', 'attachment;filename="demo.xls"');
           $response->headers->set('Cache-Control', 'max-age=0');
           $response->prepare();
           $response->sendHeaders();
           $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
           $objWriter->save('php://output');
           exit();
       }
    }
    

提交回复
热议问题