我们正常在windows下使用Excel表格的步骤是什么呢?

创建表格,使用当前的Sheet(内指标),填充数据,保存。php创建Excel也是一样执行过程是

$objPHPExcel=new PHPExcel();//实例化PHPExcel类, 等同于在桌面上新建一个excel

$objPHPExcel->createSheet();//创建新的内置表

$objPHPExcel->setActiveSheetIndex($i-1);//把新创建的sheet设定为当前活动sheet

$objSheet=$objPHPExcel->getActiveSheet();//获取当前活动sheet

$objSheet->setCellValue("A1","")->setCellValue("B1");//填充数据

setCellValue()方法:传递两个参数。第一个代表数据存放位置,第二个代表数据

$objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel,"Excel5");//生成excel文件
$objWriter->save("demo.xls");//保存文件到本地

过程结束。

填充数据的简单方法

$array=array(
    array();  //第一个数组代表第一行
    array('张三','李四','二麻子');多一个数据代表多一列
    array();
);
$objSheet->fromArray($array);直接加载数组填充数据
//此方法比较占内存和消耗CPU(数据少推荐使用)

输出到浏览器保存

browser_export('Excel5','browser_excel03.xls');//输出到浏览器
$objWriter->save("php://output"); //PHP输出一个 只写的数据流,
function browser_export($type,$filename){
    if($type=="Excel5"){
        header('Content-Type: application/vnd.ms-excel');//告诉浏览器将要输出excel03文件
    }else{
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');//告诉浏览器数据excel07文件
    }
    header('Content-Disposition: attachment;filename="'.$filename.'"');//告诉浏览器将输出文件的名称
    header('Cache-Control: max-age=0');//禁止缓存
}

完整代码示例

<?php 
    $dir=dirname(__FILE__);//查找当前脚本所在路径
    require $dir."/db.php";//引入mysql操作类文件
    require $dir."/PHPExcel/PHPExcel.php";//引入PHPExcel
    $db=new db($phpexcel);//实例化db类 连接数据库
    $objPHPExcel=new PHPExcel();//实例化PHPExcel类, 等同于在桌面上新建一个excel
    for($i=1;$i<=3;$i++){
        if($i>1){
       $objPHPExcel->createSheet();//创建新的内置表 当创建后默认有有个sheet 所以第二个开始创建
        }
       $objPHPExcel->setActiveSheetIndex($i-1);//把新创建的sheet设定为当前活动sheet sheet类似数组从0开始的
    $objSheet=$objPHPExcel->getActiveSheet();//获取当前活动sheet
    $objSheet->setTitle($i."年级");//给当前活动sheet起个名称
    $data=$db->getDataByGrade($i);//查询每个年级的学生数据
    $objSheet->setCellValue("A1","姓名")->setCellValue("B1","分数")->setCellValue("C1","班级");//填充数据
    $j=2;
    foreach($data as $key=>$val){
    $objSheet->setCellValue("A".$j,$val['username'])->setCellValue("B".$j,$val['score'])->setCellValue("C".$j,$val['class']."班");
    $j++;
        }
    }
    $objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5');//生成excel文件
    //$objWriter->save($dir."/export_1.xls");//保存文件
    browser_export('Excel5','browser_excel03.xls');//输出到浏览器
    $objWriter->save("php://output");


    function browser_export($type,$filename){
    if($type=="Excel5"){
    header('Content-Type: application/vnd.ms-excel');//告诉浏览器将要输出excel03文件
    }else{
    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');//告诉浏览器数据excel07文件
        }
header('Content-Disposition: attachment;filename="'.$filename.'"');//告诉浏览器将输出文件的名称
header('Cache-Control: max-age=0');//禁止缓存
    }

?>
Last modification:January 4, 2020
如果觉得我的文章对你有用,请随意赞赏