首先修改PHPEXCEL /Autoloader.php的文件
public static function Load($pObjectName){ if ((class_exists($pObjectName)) || (strpos($pObjectName, 'PHPExcel') === False)) { return false; } // this is the code that shows what I am saying $pObjectFilePath = PHPEXCEL_ROOT . str_replace('_',DIRECTORY_SEPARATOR,$pObjectName).'.php'; if ((file_exists($pObjectFilePath) === false) || (is_readable($pObjectFilePath) === false)) { return false; } require($pObjectFilePath); } // function Load()
然后
class TestController extends Controller{ // no layouts here public $layout = ''; public function actionTest(){ // get a reference to the path of PHPExcel classes $phpExcelPath = Yii::getPathOfAlias('ext.phpexcel.Classes'); // Turn off our amazing library autoload spl_autoload_unregister(array('YiiBase','autoload')); // making use of our reference, include the main class // when we do this, phpExcel has its own autoload registration // procedure (PHPExcel_Autoloader::Register();) include($phpExcelPath . DIRECTORY_SEPARATOR . 'PHPExcel.php'); // Create new PHPExcel object $objPHPExcel = new PHPExcel(); // Set properties $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")->setLastModifiedBy("Maarten Balliauw")->setTitle("PDF Test Document")->setSubject("PDF Test Document")->setDescription("Test document for PDF, generated using PHP classes.")->setKeywords("pdf php")->setCategory("Test result file"); // Add some data $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', 'Hello')->setCellValue('B2', 'world!')->setCellValue('C1', 'Hello')->setCellValue('D2', 'world!'); // Miscellaneous glyphs, UTF-8 $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A4', 'Miscellaneous glyphs')->setCellValue('A5', '测试测试测试'); // Rename sheet $objPHPExcel->getActiveSheet()->setTitle('Simple'); // Set active sheet index to the first sheet, // so Excel opens this as the first sheet $objPHPExcel->setActiveSheetIndex(0); // Redirect output to a client’s web browser (Excel2007) header('Content-Type: application/pdf'); header('Content-Disposition: attachment;filename="01simple.pdf"'); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF'); $objWriter->save('php://output'); Yii::app()->end(); // Once we have finished using the library, give back the // power to Yii... spl_autoload_register(array('YiiBase','autoload')); } }