如何在Yii2框架中集成PHPExcel?
我想捕获html表单字段数据并将其保存在.xlsx文件中。我环顾四周,找到了PHPExcel,但不知道如何将其集成到Yii2中。有人能告诉我怎么积分吗。我想在我的控制器中使用如下内容:如何在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
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谢谢,你的工作也很好,谢谢,伙计。不是我要求的那样,但肯定有帮助。向上投票,干杯!谢谢你,伙计。不是我要求的那样,但肯定有帮助。向上投票,干杯!