Yak*_*Yak 16 configuration phpexcel symfony
我需要使用PHPExcel
一个Symfony2
项目.任何人都知道如何正确设置项目以使用库?我应该把它放在供应商目录中吗?在配置文件等应该更改什么?
gak*_*hov 14
实际上,要做到正确,您需要按照以下步骤操作:
deps
文件并添加依赖项PHPExcel
Run Code Online (Sandbox Code Playgroud)[PHPExcel] git=http://github.com/PHPOffice/PHPExcel.git target=/phpexcel version=origin/master
运行php bin/vendors install
以安装所有缺少的依赖项(PHPExcel
在我们的例子中)
更新前缀部分app/autoload.php
:
Run Code Online (Sandbox Code Playgroud)$loader->registerPrefixes(array( // ... 'PHPExcel' => __DIR__.'/../vendor/phpexcel/Classes', ));
PHPExcel
示例的代码Tests/01simple-download-xls.php
):<?php
namespace Demo\MyBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;
use PHPExcel;
use PHPExcel_IOFactory;
class DemoController extends Controller
{
public function demoAction()
{
$response = new Response();
// Create new PHPExcel object
$objPHPExcel = new PHPExcel();
// Set document properties
$objPHPExcel->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();
}
}
Run Code Online (Sandbox Code Playgroud)
Cro*_*zin 11
在引导程序文件中配置自动加载器:
$loader->registerPrefixes(array(
// Swift, Twig etc.
'PHPExcel' => __DIR__ . '/../vendor/phpexcel/lib/PHPExcel'
));
Run Code Online (Sandbox Code Playgroud)就这样.
lin*_*ico 10
实际上最好的解决方案是使用https://github.com/liuggio/ExcelBundle.我试图使用@ Crozin的解决方案,但我仍然收到有关IOFactory :: createWriter的错误.希望这会有所帮助,西蒙娜
从Symfony 2.3开始,您现在可以执行以下操作:
...
"require": {
...
"phpoffice/phpexcel": "dev-master"
...
},
...
Run Code Online (Sandbox Code Playgroud)
然后运行composer update
,依赖关系将自动解决.
或者你可以做,composer require phpoffice/phpexcel:dev-master
如果你不想弄乱composer.json
文件.
小智 5
如果您使用composer来管理项目,则只需更改composer.json文件:
"autoload": {
"psr-4": {
"": "src/",
"": "vendor/phpoffice/phpexcel/Classes/"
},
"classmap": [
"app/AppKernel.php",
"app/AppCache.php"
]
},
Run Code Online (Sandbox Code Playgroud)
然后加
use PHPExcel;
use PHPExcel_IOFactory;
Run Code Online (Sandbox Code Playgroud)
到您的控制器文件,您可以像这样使用PHPExcel:
$objPHPExcel = new PHPExcel();
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你.
归档时间: |
|
查看次数: |
32668 次 |
最近记录: |