PHPExcel----保存/导出excel文档数据【简单实用demo】

首先要有PHPExcel类:传送门
只需要保存其中的Classes即可。
在项目中引用PHPExcel.php
我这里放在同目录下:

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

先看看,需要实现目的结果:
在这里插入图片描述
先构造,需要保存的数据:

//表头
$header = ['姓名','性别','民族'];
//写入的数据
$data = [
            [
                '张三',
                '男',
                '汉族'
            ],[
                '里斯',
                '女',
                '维吾尔'
            ],[
                '王五',
                '男',
                '苗族'
            ],
        ];

保存为excel文件代码实现:

function exportExcel($fileName,$tableHeader,$data,$sheetTitle='list'){
	//引入PHPExcel
	include("./PHPExcel/PHPExcel.php");
    $objPHPExcel = new PHPExcel();
    $objSheet = $objPHPExcel->getActiveSheet();
    $objSheet->setTitle($sheetTitle);
    //表列字母(暂时支持26列)
    $key = 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');
    //表头设置
    $tableHeaderTimes = count($tableHeader);
    foreach ($tableHeader as $k=>$v){
        $objSheet->setCellValue($key[$k]."1", $v);
        //标题居中
        $objSheet->getStyle($key[$k] . "1")->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    }
    //数据写入
    $j = 2;
    foreach ($data as $k => $v) {
        $times = count($v);
        if($times!=$tableHeaderTimes)
            exit('数据有误,与表头不对应,请检查!');
        $i = 0;
        foreach ($v as $v1){
            $objSheet->setCellValue($key[$i] . $j, $v1);
            $objSheet->getColumnDimension($key[$i])->setWidth(15);
            //字体居中
            $objSheet->getStyle($key[$i] . $j)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
            $i++;
        }
        $j++;
    }
    $objWrite = \PHPExcel_IOFactory::createWriter($objPHPExcel, "Excel5");//Excel5  Excel2007
    //输出至浏览器
    header("Content-Type: application/vnd.ms-excel");//Excel5   2003格式
    //header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");//Excel2007  2007格式
    header("Content-Disposition: attachment;filename={$fileName}.xls");
    header('Cache-Control:max-age=0');

    header('Pragma:public');
    header("Content-Type:application/x-msexecl;name={$fileName}.xls");
    header("Content-Disposition:inline;filename={$fileName}.xls");
    $objWrite->save("php://output");
}

实现:

exportExcel('人事资料',$header,$data,'姓名');

猜你喜欢

转载自blog.csdn.net/thinkeydeng/article/details/82854287