Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Yii2框架中集成PHPExcel?_Php_Yii2_Phpexcel - Fatal编程技术网

如何在Yii2框架中集成PHPExcel?

如何在Yii2框架中集成PHPExcel?,php,yii2,phpexcel,Php,Yii2,Phpexcel,我想捕获html表单字段数据并将其保存在.xlsx文件中。我环顾四周,找到了PHPExcel,但不知道如何将其集成到Yii2中。有人能告诉我怎么积分吗。我想在我的控制器中使用如下内容: require('../PHPExcel.php'); $objPHPExcel = new PHPExcel; $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, "Excel2007"); header('Content-Type: app

我想捕获html表单字段数据并将其保存在.xlsx文件中。我环顾四周,找到了PHPExcel,但不知道如何将其集成到Yii2中。有人能告诉我怎么积分吗。我想在我的控制器中使用如下内容:

require('../PHPExcel.php');
$objPHPExcel = new PHPExcel;
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel,  "Excel2007");
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="file.xlsx"');
header('Cache-Control: max-age=0');
$objWriter->save('php://output');`

在代码中,替换此行:

$objPHPExcel = new PHPExcel;
为此:

$objPHPExcel = new \PHPExcel();
还可以将
$objWriter
编辑为:

$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
要理解基本思想,这里有一个例子:

          $objPHPExcel = new \PHPExcel();

          $sheet=0;

          $objPHPExcel->setActiveSheetIndex($sheet);
          $foos = [
                    ['firstname'=>'Jane',
                    'lastname'=>'pat'],
                    ['firstname'=>'Jane',
                    'lastname'=>'Jones'],
                    ['firstname'=>'Jane',
                    'lastname'=>'Doe'],
            ];

        $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20);
        $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20);

        $objPHPExcel->getActiveSheet()->setTitle('xxx')                     
         ->setCellValue('A1', 'Firstname')
         ->setCellValue('B1', 'Lastname');

     $row=2;

            foreach ($foos as $foo) {  

                $objPHPExcel->getActiveSheet()->setCellValue('A'.$row,$foo['firstname']); 
                $objPHPExcel->getActiveSheet()->setCellValue('B'.$row,$foo['lastname']);
                $row++ ;
            }

    header('Content-Type: application/vnd.ms-excel');
    $filename = "MyExcelReport_".date("d-m-Y-His").".xls";
    header('Content-Disposition: attachment;filename='.$filename .' ');
    header('Cache-Control: max-age=0');
    $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
    $objWriter->save('php://output');       

在代码中,替换此行:

$objPHPExcel = new PHPExcel;
为此:

$objPHPExcel = new \PHPExcel();
还可以将
$objWriter
编辑为:

$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
要理解基本思想,这里有一个例子:

          $objPHPExcel = new \PHPExcel();

          $sheet=0;

          $objPHPExcel->setActiveSheetIndex($sheet);
          $foos = [
                    ['firstname'=>'Jane',
                    'lastname'=>'pat'],
                    ['firstname'=>'Jane',
                    'lastname'=>'Jones'],
                    ['firstname'=>'Jane',
                    'lastname'=>'Doe'],
            ];

        $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20);
        $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20);

        $objPHPExcel->getActiveSheet()->setTitle('xxx')                     
         ->setCellValue('A1', 'Firstname')
         ->setCellValue('B1', 'Lastname');

     $row=2;

            foreach ($foos as $foo) {  

                $objPHPExcel->getActiveSheet()->setCellValue('A'.$row,$foo['firstname']); 
                $objPHPExcel->getActiveSheet()->setCellValue('B'.$row,$foo['lastname']);
                $row++ ;
            }

    header('Content-Type: application/vnd.ms-excel');
    $filename = "MyExcelReport_".date("d-m-Y-His").".xls";
    header('Content-Disposition: attachment;filename='.$filename .' ');
    header('Cache-Control: max-age=0');
    $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
    $objWriter->save('php://output');       

通过使用composer安装phpexcel,将其添加到您的供应商目录中

希望能有帮助

通过使用composer安装phpexcel,将其添加到您的供应商目录中。接下来像这样使用它
$objPHPExcel=new\phpexcel()

希望能有帮助

使用composer将PHPExcel添加到项目中。然后在require(“@vendor/…”)中使用@vendor前缀引用它,以访问特定的包

使用composer将PHPExcel添加到项目中。然后在require(“@vendor/…”)中使用@vendor前缀引用它,以到达特定的包

此模块最初为我工作。但后来我添加了Yii2,并花了很长时间寻找问题的解决方案。对于那些找到这个主题的人,正如我所做的,并将Yii2添加到Yii1中,我将留下这个解决方案

对我来说,这是第一次

            spl_autoload_unregister(['YiiBase', 'autoload']);
            require_once Yii::app()->params['rootPath'] . '/PHPExcel/Classes/PHPExcel.php';
            spl_autoload_register(['YiiBase', 'autoload']);
当我添加Yii2时,我改变了

            spl_autoload_unregister(['Yii', 'autoload']);
            spl_autoload_unregister(['YiiBase', 'autoload']);
            require_once Yii::app()->params['rootPath'] . '/PHPExcel/Classes/PHPExcel.php';
            spl_autoload_register(['YiiBase', 'autoload']);
            spl_autoload_register(['Yii', 'autoload']);
    
下一次使用写入用户7702308

      $objPHPExcel = new \PHPExcel();
      ...
      $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');

这个模块最初对我有用。但后来我添加了Yii2,并花了很长时间寻找问题的解决方案。对于那些找到这个主题的人,正如我所做的,并将Yii2添加到Yii1中,我将留下这个解决方案

对我来说,这是第一次

            spl_autoload_unregister(['YiiBase', 'autoload']);
            require_once Yii::app()->params['rootPath'] . '/PHPExcel/Classes/PHPExcel.php';
            spl_autoload_register(['YiiBase', 'autoload']);
当我添加Yii2时,我改变了

            spl_autoload_unregister(['Yii', 'autoload']);
            spl_autoload_unregister(['YiiBase', 'autoload']);
            require_once Yii::app()->params['rootPath'] . '/PHPExcel/Classes/PHPExcel.php';
            spl_autoload_register(['YiiBase', 'autoload']);
            spl_autoload_register(['Yii', 'autoload']);
    
下一次使用写入用户7702308

      $objPHPExcel = new \PHPExcel();
      ...
      $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');

使用composer将PHPExcel添加到项目中。然后在require(“@vendor/…”)中使用@vendor prefix将其引用到特定的包这里是yii2扩展@FabrizioCaldarelli工作。TY@Code717谢谢你的工作也完成了。使用composer将PHPExcel添加到项目中。然后在require(“@vendor/…”)中使用@vendor prefix将其引用到特定的包这里是yii2扩展@FabrizioCaldarelli工作。TY@Code717谢谢,你的工作也很好,谢谢,伙计。不是我要求的那样,但肯定有帮助。向上投票,干杯!谢谢你,伙计。不是我要求的那样,但肯定有帮助。向上投票,干杯!