zoukankan      html  css  js  c++  java
  • yii集成phpexcel

    public function actionOutExcel(){
    			//echo  Yii::app()->request->baseUrl;
    			$danju = OrderInfo::model()->findByPk($_GET['id']);
    			
    			ob_end_clean();
        		ob_start();
    			
    			/** PHPExcel */
    			//Yii::import('application.vendors.*');
     			include_once(dirname(dirname(__FILE__)).'/extensions/PHPExcel.php');
    			include_once(dirname(dirname(__FILE__)).'/extensions/PHPExcel/Writer/Excel2007.php');
    			$objPHPExcel = new PHPExcel();
    			
    			$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
    										 ->setLastModifiedBy("Maarten Balliauw")
    										 ->setTitle("Office 2007 XLSX Test Document")
    										 ->setSubject("Office 2007 XLSX Test Document")
    										 ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
    										 ->setKeywords("office 2007 openxml php")
    										 ->setCategory("Test result file");
    			
    			$objPHPExcel->setActiveSheetIndex(0)
    			            ->setCellValue('A1', '商品编码')
    			            ->setCellValue('B1', '商品名称')
    			            ->setCellValue('C1', '商品规格')
    			            ->setCellValue('D1', '盘点库存')
    			            ->setCellValue('E1', '账面库存');
    
    			$model =$this->loadModel($_GET['id']);
    			if(!empty($model->Goods)){
    				$i =2;
    				foreach ($model->Goods as  $one){
    					$guige = '';
    					$guige = $one->StockSpliterValue;
    					$objPHPExcel->setActiveSheetIndex(0)
    			            ->setCellValue("A$i", $one->gd_sn)
    			            ->setCellValue("B$i", $one->gd_name)
    			            ->setCellValue("C$i", "$guige")
    			            ->setCellValue("D$i", $one->order_num)
    			            ->setCellValue("E$i", $one->stock_num);
    				   $i++;		
    				}
    			}			
    			$objPHPExcel->getActiveSheet()->setTitle('盘点单');
    			$objPHPExcel->setActiveSheetIndex(0);
    //			$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
    //			$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
    			$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);
    			
    			header("Pragma: public");
    			header("Expires: 0");
    			//header('Content-Type: application/vnd.ms-excel;charset=utf8');
    			header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
    			header("Content-Type:application/force-download");
    			header("Content-Type:application/vnd.ms-execl");
    			header("Content-Type:application/octet-stream");
    			header("Content-Type:application/download");
    			$fireName = $danju->order_sn.'-盘点单';
    			header("Content-Disposition:attachment;filename=$fireName.xls");
    			header("Content-Transfer-Encoding:binary");
    			$objWriter->save("php://output");
    
    			Yii::app()->end();
    			spl_autoload_register(array('YiiBase','autoload'));
    	}


    注意:在导出excel的时候,遇到经常乱码的问题,需要加上 

    1. ob_end_clean();  
    2.             ob_start();

    Meet so Meet. C plusplus I-PLUS....
  • 相关阅读:
    LeetCode 517 超级洗衣机(贪心)
    LeetCode 42 接雨水
    LeetCode 1289 下降路径最小和 II
    LeetCode 828 统计子串中的唯一字符
    LeetCode 363 矩形区域不超过 K 的最大数值和
    LeetCode 1278 分割回文串 III
    201771010128王玉兰《面象对象程序设计(Java)》第七周学习总结
    201771010128 王玉兰《面象对象程序设计(Java)》第六周学习总结
    201771010128 王玉兰《面象对象程序设计 (Java) 》第六周学习总结
    王玉兰201771010128《面象对象程序设计》第四周学习总结
  • 原文地址:https://www.cnblogs.com/iplus/p/4489996.html
Copyright © 2011-2022 走看看