Symfony2与phpexcel和service_xls5存在问题

Symfony2与phpexcel和service_xls5存在问题,php,symfony,service,phpexcel,Php,Symfony,Service,Phpexcel,Symfony2对$excelService=$this->get('xls.service_xls5')有问题 显示的问题是 You have requested a non-existent service "xls.service_xls5". 500 Internal Server Error - ServiceNotFoundException 你知道怎么解决这个问题吗 顺便说一下,这是我的composer.json "require": { "php": ">=5.3

Symfony2对$excelService=$this->get('xls.service_xls5')有问题

显示的问题是

You have requested a non-existent service "xls.service_xls5".
500 Internal Server Error - ServiceNotFoundException
你知道怎么解决这个问题吗

顺便说一下,这是我的composer.json

"require": {
    "php": ">=5.3.3",
    "symfony/symfony": "2.3.*",
    "doctrine/orm": ">=2.2.3,<2.4-dev",
    "doctrine/doctrine-bundle": "1.2.*",
    "twig/extensions": "1.0.*",
    "symfony/assetic-bundle": "2.3.*",
    "symfony/swiftmailer-bundle": "2.3.*",
    "symfony/monolog-bundle": "2.3.*",
    "sensio/distribution-bundle": "2.3.*",
    "sensio/framework-extra-bundle": "2.3.*",
    "sensio/generator-bundle": "2.3.*",
    "incenteev/composer-parameter-handler": "~2.0",
    "apy/datagrid-bundle": "dev-master",
    "friendsofsymfony/user-bundle": "~2.0@dev",
    "liuggio/excelbundle": ">=1.0.4",
    "mbence/opentbs-bundle": "dev-master",
    "phpoffice/phpexcel": "dev-master"
}

首先,当您将
“liuggio/excelbundle”:“>=1.0.4”
”添加到composer.json时,当您运行
composer install
composer update
时,它应该自动卸载依赖项。在我的例子中,我的composer.json包含以下内容:

"require": {
        "php": ">=5.3.3",
        "symfony/symfony": "2.3.*",
        "doctrine/orm": ">=2.2.3,<2.4-dev",
        "doctrine/doctrine-bundle": "1.2.*",
        "twig/extensions": "1.0.*",
        "symfony/assetic-bundle": "2.3.*",
        "symfony/swiftmailer-bundle": "2.3.*",
        "symfony/monolog-bundle": "2.3.*",
        "sensio/distribution-bundle": "2.3.*",
        "sensio/framework-extra-bundle": "2.3.*",
        "sensio/generator-bundle": "2.3.*",
        "incenteev/composer-parameter-handler": "~2.0",
        "liuggio/excelbundle": "~2.0"
    }
完成此过程后,您需要在app/AppKernel.php文件中注册此捆绑包,如下所示

$bundles = array(
        // ...
        new Liuggio\ExcelBundle\LiuggioExcelBundle(),
    );
注意:在我的情况下,我需要打开一个文件,因此,在我的控制器中,我需要添加使用PHPExcel\u IOFactory开始时

$readerObject = PHPExcel_IOFactory::createReader('Excel5');
$phpExcelObject = $readerObject->load('path/to/file. '.xls');
要编写新的excel文件,请执行以下操作:

$phpExcelObject = $this->get('phpexcel')->createPHPExcelObject();
$phpExcelObject->getProperties()->setCreator('Me')
                                    ->setLastModifiedBy('Me')
                                    ->setTitle("General Overview");
$phpExcelObject->createSheet(0);
$phpExcelObject->setActiveSheetIndex(0);
$phpExcelObject->getActiveSheet()->setTitle('General Overview');
$phpExcelObject->setActiveSheetIndex(0)->setCellValue('A1', 'Title');
$writer = $this->get('phpexcel')->createWriter($phpExcelObject, 'Excel5');
$writer->save('files/report.xls');

我认为您的问题可能是没有正确安装捆绑包,或者没有在AppKernel.php中注册。这应该很好用

你在用吗?我想是的。我编辑了这篇文章,现在你可以看到我的composer.json1了。首先,当有人回答我的问题时,如何通知我?2.我如何运行“php composer.phar update luiggioBundle”之类的程序?因为当我运行general composer update时,我的项目停止工作了1。问题是,“Stack Exchange”徽标旁边的顶部有一个红色数字。(此外,还有一款Android应用程序链接到您的帐户,当收到您的问题的新评论/答案时,它会在您的手机上显示弹出窗口)2.您的项目不应该停止工作,因为您在composer.json上拥有的所有内容都必须有效,并且它应该是您在创建/更新项目时使用的最后一个composer.json。有关如何更新单个软件包,请参阅此答案,我将使用您在上一篇文章中提到的update liuggio/ExcelBundle命令更新到2.0。我会告诉您发生了什么事。谢谢。我们也可以说西班牙语:Dphp composer.phar update/liuggio/ExcelBundle包/liuggio/ExcelBundle包“未安装为更新列出的。忽略。更新依赖项您的要求无法解析为可安装的软件包集。P1-找不到请求的软件包liuggio/excelbundle==1.0.6.0。P2-symfony/icu==1.2.0.0->symfony/icu可满足安装请求[v1.2.0].-symfony/icu v1.2.0需要lib-icu>=4.4->请求的链接库icu安装了错误的版本或系统中缺少该版本,请确保使用扩展插件提供it.php composer.phar安装。此外,请更新您当前的composer.json以了解我们正在处理的问题。
$readerObject = PHPExcel_IOFactory::createReader('Excel5');
$phpExcelObject = $readerObject->load('path/to/file. '.xls');
$phpExcelObject = $this->get('phpexcel')->createPHPExcelObject();
$phpExcelObject->getProperties()->setCreator('Me')
                                    ->setLastModifiedBy('Me')
                                    ->setTitle("General Overview");
$phpExcelObject->createSheet(0);
$phpExcelObject->setActiveSheetIndex(0);
$phpExcelObject->getActiveSheet()->setTitle('General Overview');
$phpExcelObject->setActiveSheetIndex(0)->setCellValue('A1', 'Title');
$writer = $this->get('phpexcel')->createWriter($phpExcelObject, 'Excel5');
$writer->save('files/report.xls');