Export_Excel.php 2.6 KB
<?php
    /**
     * 该文件为导出数据库内容为Excel文件
     * 需要数据库phpexcel下的student表,请注意有数据!
     * 附加题:判断数据库为空或条件查询无内容时显示无数据,并停止导出流程
     * Created by PhpStorm.
     * User: shu
     * Date: 2019-06-28
     * Time: 23:48
     */


    $link = mysqli_connect('127.0.0.1','root','root','phpexcel');
    mysqli_set_charset($link,'utf8mb4');

    include("./PHPExcel_Croe/PHPExcel.php");

    $data  = mysqli_fetch_all(mysqli_query($link,"SELECT * FROM student"),MYSQLI_ASSOC);
    //PHPExcel支持读模版 所以我还是比较喜欢先做好一个Excel的模版  比较好,不然要写很多代码  模版我放在根目录了
    //创建一个读Excel模版的对象
    $objReader = PHPExcel_IOFactory::createReader ( 'Excel2007' );
    //读取模板文件
    $objPHPExcel = $objReader->load ("template.xlsx" );
    //获取当前活动的表
    $objActSheet = $objPHPExcel->getActiveSheet ();
    //单独设置单元格信息
    $objActSheet->setTitle ( '导出学生信息' );
    $objActSheet->setCellValue ( 'A1', '学生信息导出' );
    $objActSheet->setCellValue ( 'H3', '导出时间:' . date ( 'Y年m月d日 H:i:s' ) );


    //具体有多少列 看你的数据走  会涉及到计算
    //现在就开始填充数据了  (从数据库中)  $data
    $baseRow = 3; //数据从N-1行开始往下输出  这里是避免头信息被覆盖
    foreach ( $data as $r => $dataRow ) {
        $row = $baseRow + $r;
    //将数据填充到相对应的位置
        $objPHPExcel->getActiveSheet ()->setCellValue ( 'A' . $row, $dataRow ['id'] ); //学员编号
        $objPHPExcel->getActiveSheet ()->setCellValue ( 'B' . $row, $dataRow ['sno'] ); //真实姓名
        $objPHPExcel->getActiveSheet ()->setCellValue ( 'C' . $row, $dataRow ['name'] ); //真实姓名
        $objPHPExcel->getActiveSheet ()->setCellValue ( 'D' . $row, $dataRow ['department'] ); //真实姓名
        $objPHPExcel->getActiveSheet ()->setCellValue ( 'E' . $row, $dataRow ['major'] ); //真实姓名
        $objPHPExcel->getActiveSheet ()->setCellValue ( 'F' . $row, $dataRow ['class'] ); //真实姓名
    }
    //导出
    $filename = '学生信息导出'.time ();
    header ( 'Content-Type: application/vnd.ms-excel' );
    header ( 'Content-Disposition: attachment;filename="' . $filename . '.xls"' ); //"'.$filename.'.xls"
    header ( 'Cache-Control: max-age=0' );
    $objWriter = PHPExcel_IOFactory::createWriter ( $objPHPExcel, 'Excel5' ); //在内存中准备一个excel2003文件
    $objWriter->save ( 'php://output' );