zoukankan      html  css  js  c++  java
  • 浏览器正常导出文件phpecxel

    
    header("Content-type: text/html; charset=utf-8");
    require "./plugin/phpexcel-1.8/Classes/PHPExcel/IOFactory.php";
    require_once './plugin/phpexcel-1.8/Classes/PHPExcel.php';
    require_once './plugin/phpexcel-1.8/Classes/PHPExcel/Writer/Excel2007.php';
    
    /**
     * 创建(导出)Excel数据表格
     * @param  array   $list        要导出的数组格式的数据
     * @param  string  $filename    导出的Excel表格数据表的文件名
     * @param  array   $indexKey    $list数组中与Excel表格表头$header中每个项目对应的字段的名字(key值)
     * @param  array   $startRow    第一条数据在Excel表格中起始行
     * @param  [bool]  $excel2007   是否生成Excel2007(.xlsx)以上兼容的数据表
     * 比如: $indexKey与$list数组对应关系如下:
     *     $indexKey = array('id','username','sex','age');
     *     $list = array(array('id'=>1,'username'=>'YQJ','sex'=>'男','age'=>24));
     */
    /*function exportExcel($list,$filename,$indexKey,$startRow=1,$excel2007=false){
    
    	if(empty($filename)) $filename = time();
    	if( !is_array($indexKey)) return false;
    
    	$header_arr = 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');
    	//初始化PHPExcel()
    	$objPHPExcel = new PHPExcel();
    
    	//设置保存版本格式
    	if($excel2007){
    		$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
    		$filename = $filename.'.xlsx';
    	}else{
    		$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);
    		$filename = $filename.'.xls';
    	}
    	//接下来就是写数据到表格里面去
    	$objActSheet = $objPHPExcel->getActiveSheet();
    	$objActSheet->setCellValue('A2',  "活动名称:江南极客");
    	$objActSheet->setCellValue('C2',  "导出时间:".date('Y-m-d H:i:s'));
    
    
    	//$startRow = 1;
    	foreach ($list as $row) {
    		foreach ($indexKey as $key => $value){
    			//这里是设置单元格的内容
    			$objActSheet->setCellValue($header_arr[$key].$startRow,$row[$value]);
    		}
    		$startRow++;
    	}
    
    	// 下载这个表格,在浏览器输出
    //	header("Pragma: public");
    //	header("Expires: 0");
    	header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
    	header("Content-Type:application/force-download");
    	header("Content-Type:application/vnd.ms-execl");
    	header("Content-Type:application/octet-stream");
    	header("Content-Type:application/download");;
    	header('Content-Disposition:attachment;filename='.$filename.'');
    	header("Content-Transfer-Encoding:binary");
    	$res=$objWriter->save('php://output');
    	return $res;
    }*/
    
    function exportExcel2($list,$filename,$indexKey=array()){
    	$header_arr = 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');
    
    	//$objPHPExcel = new PHPExcel();                        //初始化PHPExcel(),不使用模板
    	$template = 'D:/Download/test.xlsx';          //使用模板
    //	$template = dirname(__FILE__).'/template.xls';          //使用模板
    	$objPHPExcel = PHPExcel_IOFactory::load($template);     //加载excel文件,设置模板
    
    	$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);  //设置保存版本格式
    
    	//接下来就是写数据到表格里面去
    	$objActSheet = $objPHPExcel->getActiveSheet();
    	$objActSheet->setCellValue('A2',  "活动名称:江南极客");
    	$objActSheet->setCellValue('C2',  "导出时间:".date('Y-m-d H:i:s'));
    	$i = 4;
    	foreach ($list as $row) {
    		foreach ($indexKey as $key => $value){
    			//这里是设置单元格的内容
    			$objActSheet->setCellValue($header_arr[$key].$i,$row[$value]);
    		}
    		$i++;
    	}
    
    	// 1.保存至本地Excel表格
    	//$objWriter->save($filename.'.xls');
    
    	// 2.接下来当然是下载这个表格了,在浏览器输出就好了
    	header("Pragma: public");
    	header("Expires: 0");
    	header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
    	header("Content-Type:application/force-download");
    	header("Content-Type:application/vnd.ms-execl");
    	header("Content-Type:application/octet-stream");
    	header("Content-Type:application/download");;
    	header('Content-Disposition:attachment;filename="'.$filename.'.xls"');
    	header("Content-Transfer-Encoding:binary");
    	$objWriter->save('php://output');
    }
    
    $indexKey = array('id','username','sex','age');
    $data = array(array('id'=>1,'username'=>'YQJ','sex'=>'男','age'=>24));
     exportExcel2($data,$filename='test',$indexKey);
    // exportExcel($data,$filename='test',$indexKey,$startRow=1,$excel2007=true);

    赞赏码

    非学,无以致疑;非问,无以广识

  • 相关阅读:
    python目录操作【os和os.path】
    Zabbix4.0 zabbix 快速监控主机
    Zabbix 4.0 钉钉报警
    MySql:sql99语法的连接查询
    bat脚本中存在多条指令,但只执行到某条指令不继续向下执行的一种解决方法
    基类与接口类中的虚析构函数(virtual destructor)
    TortoiseGit使用指南;
    Rust编译问题Blocking waiting for file lock on package cache
    win10安装visual C++ 6.0,在最后显示安装程序正在更新您的系统,然后就无响应
    从实现装饰者模式中思考C++指针和引用的选择
  • 原文地址:https://www.cnblogs.com/lxwphp/p/15452429.html
Copyright © 2011-2022 走看看