我试图在yii2中创建报告以excel。第一个,当我在view / index.php中单击按钮导出时,我已经使文件excel适应数据。我把文件app / views / donatur放进去。 第二,我在控制器中添加了actionExportExcel,这是使用库PHPExcel生成数据以格式化excel的目标。 出了点问题,我不知道为什么,错误如下。
控制器中的无法打开$ app / views / donatur / excel.xlsx进行阅读!文件不存在。
代码
public function actionExportExcel()
{
$searchModel = new DonaturSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
$objReader = \PHPExcel_IOFactory::createReader('Excel2007');
// set tempate
$template = Yii::getAlias('$app/views/donatur').'/excel.xlsx';
$objPHPExcel = $objReader->load($template);
$activeSheet = $objPHPExcel->getActiveSheet();
// Set orientasi & ukuran kertas
$activeSheet->getPageSetup()->setOrientation(\PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE)->
setPaperSize(\PHPExcel_Worksheet_PageSetup::PAPERSIZE_FOLIO);
$baseRow = 4;
foreach ($dataProvider->getModels() as $donatur) {
$activeSheet->setCellValue('A'.$baseRow, $baseRow-2)->
setCellValue('B'.$baseRow, $category->nama_donatur)->
setCellValue('C'.$baseRow, $category->alamat)->
setCellValue('D'.$baseRow, $category->telepon);
$baseRow++;
}
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment; filename= "excel.xlsx"');
header('Cache-Control: max-age=0');
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, "Excel2007");
$objWriter->save('php://output');
exit;
}
答案 0 :(得分:0)
在别名中,您应该使用@而不是$
$template = Yii::getAlias('@app/views/donatur').'/excel.xlsx';