当前位置: 首页 > 知识库问答 >
问题:

Symfony2对phpexcel和service_xls5有问题

云宏儒
2023-03-14

Symfony2有问题$excelService=$this-

显示的问题是

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"
}

但是我不能安装phpoffice/phpexcel,这是我最后一次尝试...

修改于25/06/2014

在Splendonia的帮助下,我能够以正确的方式安装/更新我的luiggioBundle,并意识到现在它有了一个新的应用编程接口。然后我运行的例子是在LuiggioBundle在Github留档和所有工作只是罚款。

namespace YOURNAME\YOURBUNDLE\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class DefaultController extends Controller
{

    public function indexAction($name)
    {
        // ask the service for a Excel5
       $phpExcelObject = $this->get('phpexcel')->createPHPExcelObject();

       $phpExcelObject->getProperties()->setCreator("liuggio")
           ->setLastModifiedBy("Giulio De Donato")
           ->setTitle("Office 2005 XLSX Test Document")
           ->setSubject("Office 2005 XLSX Test Document")
           ->setDescription("Test document for Office 2005 XLSX, generated using PHP classes.")
           ->setKeywords("office 2005 openxml php")
           ->setCategory("Test result file");
       $phpExcelObject->setActiveSheetIndex(0)
           ->setCellValue('A1', 'Hello')
           ->setCellValue('B2', 'world!');
       $phpExcelObject->getActiveSheet()->setTitle('Simple');
       // Set active sheet index to the first sheet, so Excel opens this as the first sheet
       $phpExcelObject->setActiveSheetIndex(0);

        // create the writer
        $writer = $this->get('phpexcel')->createWriter($phpExcelObject, 'Excel5');
        // create the response
        $response = $this->get('phpexcel')->createStreamedResponse($writer);
        // adding headers
        $response->headers->set('Content-Type', 'text/vnd.ms-excel; charset=utf-8');
        $response->headers->set('Content-Disposition', 'attachment;filename=stream-file.xls');
        $response->headers->set('Pragma', 'public');
        $response->headers->set('Cache-Control', 'maxage=1');

        return $response;        
    }
}

共有1个答案

司允晨
2023-03-14
"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"
    }

始终,在向composer.json添加新捆绑包之后,您应该运行composer update来添加新的依赖项,执行以下操作:

php composer.phar update

流程完成后,需要像这样在app/AppKernel.php文件中注册捆绑包...

$bundles = array(
        // ...
        new Liuggio\ExcelBundle\LiuggioExcelBundle(),
    );

注意:在我的情况下,我需要打开一个文件,所以,在我的控制器,我需要添加使用PHPExcel_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');

我认为你的问题可能是没有正确安装捆绑包,或者在你的AppK中注册ernel.php.这应该可以正常工作。

 类似资料:
  • 这个问题开始于一个非常复杂的工作表,但我把它简化为一个非常简单但仍然有同样的问题。 PHPExcel不是在计算公式,但是如果我改成一个简单的(code=b3/code>)它就能工作。 getvalue()返回的公式为 我的密码。 我在B3单元格处设置值8,在excel中这样做会在B8处计算相同的值。 C8有个'n'。 但是在phpexcel中,我总是得到它保存的值(2.1) 响应:2.1 在exc

  • 我使用FOSUser捆绑包提供的认证系统 一切正常,但最近点击: 产生错误的原因:CSRF令牌无效。请尝试重新提交表单。 FOSUserBundle的视图和控制器都没有被修改...!? 这是怎么发生的?如何解决?

  • PHPExcel 是一个用来读写 Excel 2007 (OpenXML) 文件的 PHP 库。 示例代码: /** Error reporting */error_reporting(E_ALL); /** Include path **/ini_set('include_path', ini_get('include_path').';../Classes/'); /** PHPExcel *

  • 问题内容: 好的,这是一个新手问题,但我在任何地方都找不到答案。在Symfony2中的控制器中,我想从我的一个表单中访问POST值。在控制器中,我有: 不幸的是没有返回任何东西。我究竟做错了什么?谢谢! 问题答案: 此解决方案从2.3开始弃用,并将在3.0中删除,请参阅文档 给你一个数组的形式参数 摘自symfony2书第162页(第12章:表格) […]有时,您可能只想使用没有类的表单,并取回已

  • 我已经尝试了所有方法来启用安装Symfony2后运行此命令的能力。 php应用程序/控制台缓存:清除--无预热或php应用程序/控制台缓存:清除 我每次都会遇到此错误: [错误异常]警告:date\u default\u timezone\u get():依赖系统的时区设置是不安全的。您需要使用日期。时区设置或date\u default\u timezone\u set()函数。如果您使用了这些

  • 在我的Symfony项目中,我想使用真伪鉴别。所以我在security.yml档案里写了这个 好的,现在文档中说我需要在routing.yml中添加以下内容: 但我使用的是注释,所以我不使用路由文件。相反,我有: 如果我什么也不做,我的登录页面会出错: 如果我在控制器中添加一个响应为空的操作,则。。。没有什么 我做错了什么?