用PHPExcel导出excel文件

    public function export(){
        /*
         * 导出操作:从数据库中读取的数据,导出到Excel表格
         * $map : 搜索条件
         */
        switch (I('post.status')) {
            case '1':
                $map['is_del'] = 0;
                break;
            case '2':
                $map['is_del'] = 1;
                break;
            case '3':
                $map['is_del'] = array('egt',0);
                break;
            default:
                $map['is_del'] = 0;
                break;
        }
        //设置编码为utf-8
        header('content-type:text/html;charset=utf-8');
        //导出的Excel表格的名字
        $xlsName  = "藏品列表";
        //导出的Excel表格的表头
        $xlsCell  = array(
            array('id','序号'),
            array('title','名称'),
            array('guide','导览'),
            array('time','年代'),
            array('url','封面'),
            array('content','介绍'),
        );
        /*
         * 依据搜索条件,在数据库中搜索数据
         */
        $xlsData  = M('collection as c')
            ->join('left join oa_material as m ON c.cover_url = m.id')
            ->field('c.id,c.title,c.guide,c.time,c.content,m.url')
            ->where($map)
            ->select();

//        foreach($xlsData as $k=>$v) {
//            $newxlsData[$key][] = strip_tags($v['content']);
//        }
//        echo "<pre>";
//        print_r(count($newxlsData));
//        print_r($newxlsData);
//        die;
        /*
         * 调用公共函数文件function.php中的exportExcel()函数
         * exportExcel()函数是做导出操作的
         * $xlsName : Excel表格的名字
         * $xlsCell : Excel表格的表头
         * $xlsData : Excel表格的内容
         */
        exportExcel($xlsName,$xlsCell,$xlsData);
    }
<form action="{:U('collection/export')}" method="post" class="dao_form">
    <input type="radio" name="status" id="on" value="1" /><label for="on">上架的展品</label><br><br>
    <input type="radio" name="status" id="off" value="2" /><label for="off">下架的展品</label><br><br>
    <input type="radio" name="status" id="all" value="3" checked/><label for="all">全部的展品</label><br><br>
    <button type="submit" onclick="return check_explore()"  target="_blank" class="btn btn-primary">导出</button>
</form>
function exportExcel($xlsName,$expCellName,$expTableData){

	$fileName = $xlsName.date('_YmdHis');//or $xlsTitle 文件名称可根据自己情况设定
	$cellNum = count($expCellName);//得到表头的长度
	$dataNum = count($expTableData);//得到内容的长度
	vendor("Excel.PHPExcel");//引入EXCEL类包
	$objPHPExcel = new \PHPExcel();//实例化类
	$cellName = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','AA','AB','AC','AD','AE','AF','AG','AH','AI','AJ','AK','AL','AM','AN','AO','AP','AQ','AR','AS','AT','AU','AV','AW','AX','AY','AZ');
	$objPHPExcel->getActiveSheet(0)->mergeCells('A1:'.$cellName[$cellNum-1].'1');//合并单元格
	$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1',$fileName); //输入标题
	$objPHPExcel->setActiveSheetIndex(0)->getStyle ( 'A1' )->getAlignment ()->setHorizontal ( \PHPExcel_Style_Alignment::HORIZONTAL_CENTER );  // 设置单元格水平对齐格式
	$objPHPExcel->setActiveSheetIndex(0)->getStyle ( 'A1' )->getAlignment ()->setVertical ( \PHPExcel_Style_Alignment::VERTICAL_CENTER );      // 设置单元格垂直对齐格式

	//输出标题栏
	for($i=0;$i<$cellNum;$i++){
		$objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i].'2', $expCellName[$i][1]);
	}
	//输出内容栏
	for($i=0;$i<$dataNum;$i++){
		for($j=0;$j<$cellNum;$j++){
			$objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j].($i+3), $expTableData[$i][$expCellName[$j][0]]);
		}
	}
	//导出
	header('pragma:public');
	header('Content-type:application/vnd.ms-excel;charset=utf-8;name="'.$fileName.'.xls"');
	header("Content-Disposition:attachment;filename=$fileName.xls");
	$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
	$objWriter->save('php://output');
	exit;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值