2016-09-15 21 views
0

我试图在yii2中创建报告以优化。第一,我使excel文件适应数据,当我点击view/index.php中的按钮导出。我把文件app/views/donatur。 第二,我在控制器中添加了actionExportExcel,目标是使用库PHPExcel生成数据以格式化excel。 有什么不对,我不知道为什么,错误如下。在yii2中报告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; 
 
    }

+1

它不应该是'@应用程序/视图/ donatur'而不是'$ app/views/donatur'? – Bizley

+0

我试过了@app/views/donatur。它适合我 – CrashBurn

回答

0

别名,你应该使用@而不是$

$template = Yii::getAlias('@app/views/donatur').'/excel.xlsx';