Yii生成excel表

Yii生成excel表


/**
	 * 下载excel表格
	 * @return string
	 */
	public function actionDownload(){		
	
		//实例化excel类
		$objPHPExcel = new \PHPExcel();
		//设置文件属性
		$objPHPExcel->getProperties()->setCreator("ira")
		->setLastModifiedBy("ira")
		->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('A2', "测试数据");
		//设置列的宽度
		$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10);
		$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(35);
		$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(70);
		$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(80);
		$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(25);

		//水平居中
    	$objPHPExcel->getActiveSheet()->getStyle('F2')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    	//垂直居中
    	$objPHPExcel->getActiveSheet()->getStyle('F2')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
		//设置颜色
		$phpColor_f40a0a = new \PHPExcel_Style_Color();
    	$phpColor_f40a0a->setRGB('f40a0a');
		$objPHPExcel->getActiveSheet()->getStyle('A1:D1')->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB('00b050');
		$objPHPExcel->getActiveSheet()->getStyle('F2')->getFont()->setColor($phpColor_f40a0a);
		$objPHPExcel->getActiveSheet()->getStyle('B13')->getFont()->setColor($phpColor_f40a0a);
		$objPHPExcel->getActiveSheet()->getStyle('F2:F11')->getAlignment()->setWrapText(TRUE);

		$Mail = array(); //这是要遍历的数组
		for($i=0; $i<= count($Mail); $i++){
			$type = $Mail[$i]['type'];
			$info = $Mail[$i]['info'];
			$custom = $Mail[$i]['custom'];
			if($type){
				$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$i, $type);
			}
			if($info){
				$objPHPExcel->setActiveSheetIndex(0)->setCellValue('C'.$i, $info);
			}
			if($mail){
				$objPHPExcel->setActiveSheetIndex(0)->setCellValue('D'.$i, $custom);
			}
			
			
		}

		


		//以Excel5的格式输出重定向到重命名的excel表
		$objPHPExcel->setActiveSheetIndex(0);
		$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
		

		$filename="excel表的名称";
		//保存到服务器
		$outputFileName = $filename.".xlsx";
		$outputFileName = iconv('UTF-8','GB18030',$outputFileName);
		$dir = date('Y-m');
		$RATE_FILES = \yii::$app->basePath.'/excel';//存放的地址
		if (!is_dir($RATE_FILES.'/'.$dir.'/')) {
			mkdir($RATE_FILES.'/'.$dir.'/', 0777,true);
		}
		$objWriter->save($RATE_FILES.'/'.$dir.'/'.$outputFileName);	
		
		//输出到浏览器下载
		header( "Pragma: public" );
		header('Content-Disposition: attachment;filename="'.$filename.'.xlsx" ' );
		$objWriter->save('php://output');
		exit;						

	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值