在 yii2 中向 excel 报告错误
Reporting to excel in yii2 something wrong
我尝试在 yii2 中创建向 excel 的报告。首先,我制作文件 excel 以在单击 view/index.php 中的按钮导出时容纳数据。我放入文件 app/views/donatur。
第二,我在控制器中添加了 actionExportExcel,目的是使用 PHPExcel 库生成格式为 excel 的数据。
有问题,我不知道为什么,在下面报错。
Could not open $app/views/donatur/excel.xlsx for reading! File does not exist.
控制器中的代码
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;
}
在别名中,您应该使用 @ 而不是 $
$template = Yii::getAlias('@app/views/donatur').'/excel.xlsx';
我尝试在 yii2 中创建向 excel 的报告。首先,我制作文件 excel 以在单击 view/index.php 中的按钮导出时容纳数据。我放入文件 app/views/donatur。 第二,我在控制器中添加了 actionExportExcel,目的是使用 PHPExcel 库生成格式为 excel 的数据。 有问题,我不知道为什么,在下面报错。
Could not open $app/views/donatur/excel.xlsx for reading! File does not exist.
控制器中的代码
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;
}
在别名中,您应该使用 @ 而不是 $
$template = Yii::getAlias('@app/views/donatur').'/excel.xlsx';