国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

PHPExcel學習筆記

2020-03-22 19:54:22
字體:
來源:轉載
供稿:網友
  • 以下學習筆記均是從慕課網的視頻里整理得來,僅作自己學習記錄和交流之用,課程鏈接為 http://www.imooc.com/view/433

    學習PHPExcel準備工作

    php版本不能太低

    保持php版本5.3以上

    下載PHPExcel插件

    https://github.com/PHPOffice/PHPExcel/archive/1.8.1.zip

    解壓后提取html' target='_blank'>classes文件夾到工作目錄,并重命名為excel

    此處還用到了虛擬域名的設置,可以參考下篇博文:http://blog.csdn.net/panjican/article/details/51660751

    使用PHPExcel導出文件步驟

    方法一:

    <?php    header("Content-Type: text/html;charset=utf-8");    $dir = dirname(__FILE__);//找到當前腳本所在路徑	require_once $dir."/PHPExcel.php"; //引入文件	$obj = new PHPExcel();// 實例化PHPExcel類,等價于在桌面上新建一個excel表格	$objSheet = $obj->getActiveSheet(); //獲得當前活動sheet的操作對象	$objSheet->setTitle('demo'); //給當前活動sheet設置名稱    //方法1	$objSheet->setCellValue("A1","姓名")->setCellValue("B1","分數"); //給當前活動sheet填充數據	$objSheet->setCellValue("A2","張三")->setCellValue("B2","50");	$objWriter = PHPExcel_IOFactory::createWriter($obj,"Excel2007"); //按照指定格式生成excel文件	$objWriter->save($dir."/demo.xlsx");  //保存文件?>

    方法二:

    <?php    header("Content-Type: text/html;charset=utf-8");    $dir = dirname(__FILE__);//找到當前腳本所在路徑	require_once $dir."/PHPExcel.php"; //引入文件	$obj = new PHPExcel();// 實例化PHPExcel類,等價于在桌面上新建一個excel表格	$objSheet = $obj->getActiveSheet(); //獲得當前活動sheet的操作對象	$objSheet->setTitle('demo'); //給當前活動sheet設置名稱	//方法二	$array = array(		 		array(),				array("","姓名","分數"),				array("","李四","60"),				array("","王五","100")		      );	$objSheet->fromArray($array); //直接加載數據塊來填充數據	$objWriter = PHPExcel_IOFactory::createWriter($obj,"Excel2007");	$objWriter->save($dir."/demo_1.xlsx");?>

    PS:推薦使用第一種方法,第一種對內存消耗比較少,且代碼可讀性更強,而且可以設置單元格的樣式

    ??

    PHPExcel導出MySQL數據庫數據

    ①讀取數據并輸出到本地文件保存

    數據庫結構


    本人相關文件放置目錄位置

    dbconfig.php

    <?php   	$phpexcel = array(   			'host' => "127.0.0.1",   			'username' => "root",   			'password' => "",   			'database' => "phpexcel",   			'charset'  => "utf8"   		);?>

    db.php

    <?php	require_once dirname(__FILE__)."/dbconfig.php"; //引入配置文件	class db {		public $conn = null;        //構造方法 實例化類時自動調用		public function __construct($config){			$this->conn = mysqli_connect($config['host'],$config['username'],$config['password'],$config['database']) or die(mysqli_connect_error()); //連接數據庫			mysqli_query($this->conn, "set names ".$config['charset']) or die(mysqli_connect_error());//設定mysql編碼		}		//根據傳入sql語句 查詢mysql結果集		public function getResult($sql){			$resource = mysqli_query($this->conn,$sql) or die(mysqli_connect_error());//查詢sql語句			$res = array();			while($row = mysqli_fetch_assoc($resource)){				$res[] = $row;			}			return $res;		}		//根據傳入年級數 查詢每個年級的學生數據		public function getDataByGrade($grade){			$sql = "select username,score,class from user where grade=".$grade." order by score desc";			$res = self::getResult($sql);			return $res;		}	}?>

    export.php

    <?php	$dir = dirname(__FILE__); //查找當前腳本所在路徑	require_once $dir."/db.php";//引入mysql操作類文件	require_once $dir."/PHPExcel.php";//引入PHPExcel文件	$db = new db($phpexcel); //實例化db類 連接數據庫	$objPHPExcel = new PHPExcel(); //實例化PHPExcel類,等同于在桌面上新建一個excel	for( $i = 1; $i <= 3; $i++ ){		if($i > 1){			$objPHPExcel->createSheet();//創建新的內置表		}		$objPHPExcel->setActiveSheetIndex( $i - 1 ); //把新創建的sheet設定為當前活動sheet		$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 =>$value ){			$objSheet->setCellValue("A".$j,$value['username'])->setCellValue("B".$j,$value['score'])->setCellValue("C".$j,$value['class']."班");			$j++;		} }		$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5'); //生成excel文件		$objWriter->save($dir."/export_1.xls");//保存文件	?>

    瀏覽器輸入鏈接地址,并打開

    生成的excel文件,打開如下:

    ②輸出至瀏覽器

    export.php

    <?php	$dir = dirname(__FILE__); //查找當前腳本所在路徑	require_once $dir."/db.php";//引入mysql操作類文件	require_once $dir."/PHPExcel.php";//引入PHPExcel文件	$db = new db($phpexcel); //實例化db類 連接數據庫	$objPHPExcel = new PHPExcel(); //實例化PHPExcel類,等同于在桌面上新建一個excel	for( $i = 1; $i <= 3; $i++ ){		if($i > 1){			$objPHPExcel->createSheet();//創建新的內置表		}		$objPHPExcel->setActiveSheetIndex( $i - 1 ); //把新創建的sheet設定為當前活動sheet		$objSheet = $objPHPExcel->getActiveSheet(); //獲取當前活動sheet		$objSheet->setTitle($i."年級");		$data = $db->getDataByGrade($i); //查詢每個年級的學生數據		$objSheet->setCellValue("A1","姓名")->setCellValue("B1","分數")->setCellValue("C1","班級");//填充數據		$j = 2;		foreach($data as $key =>$value ){			$objSheet->setCellValue("A".$j,$value['username'])->setCellValue("B".$j,$value['score'])->setCellValue("C".$j,$value['class']."班");			$j++;		}	}		$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5'); //生成excel文件		//$objWriter->save($dir."/export_1.xls");//保存文件		browser_export('Excel5','browser_export03.xls'); //輸出到瀏覽器		$objWriter->save("php://output");		function browser_export($type,$filename){			if( $type == "Excel5" ){				// Redirect output to a client’s web browser (Excel5) 告訴瀏覽器將要輸出excel03文件                header('Content-Type: application/vnd.ms-excel');			}elseif( $type == "Excel2007E" ){				// Redirect output to a client’s web browser (Excel2007) 告訴瀏覽器將要輸出excel07文件			    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');			}						 //告訴瀏覽器將輸出文件的名稱             header('Content-Disposition: attachment;filename="'.$filename.'"');             //禁止緩存             header('Cache-Control: max-age=0');              /*             // If you're serving to IE 9, then the following may be needed             header('Cache-Control: max-age=1');             */		}?>
    在瀏覽器輸入鏈接,并打開,頁面會彈框提示打開或者下載,打開文件,文件內容跟保存到本地的文件內容是一致的。



    PHPExcel導入文件


    reader.php

    <?php header("Content-Type:text/html;charset=utf-8");$dir=dirname(__FILE__);//找到當前腳本所在路徑require $dir."/PHPExcel/IOFactory.php";//引入讀取excel的類文件$filename=$dir."/export_1.xls";$fileType=PHPExcel_IOFactory::identify($filename);//自動獲取文件的類型提供給phpexcel用$objReader=PHPExcel_IOFactory::createReader($fileType);//獲取文件讀取操作對象$sheetName=array("2年級","3年級");$objReader->setLoadSheetsOnly($sheetName);//只加載指定的sheet$objPHPExcel=$objReader->load($filename);//加載文件/**$sheetCount=$objPHPExcel->getSheetCount();//獲取excel文件里有多少個sheetfor($i=0;$i<$sheetCount;$i++){	$data=$objPHPExcel->getSheet($i)->toArray();//讀取每個sheet里的數據 全部放入到數組中	print_r($data);}**/foreach($objPHPExcel->getWorksheetIterator() as $sheet){//循環取sheet		foreach($sheet->getRowIterator() as $row){//逐行處理				if($row->getRowIndex()<2){					continue;				}				foreach($row->getCellIterator() as $cell){//逐列讀取						$data=$cell->getValue();//獲取單元格數據						echo $data." ";				}				echo '<br/>';		}		echo '<br/>';}exit;?>

    打開瀏覽器輸入鏈接,輸出內容如下:

    PHP編程

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 武平县| 津市市| 延吉市| 四会市| 永仁县| 安福县| 新龙县| 九龙县| 高台县| 怀仁县| 靖安县| 儋州市| 若尔盖县| 九江市| 德保县| 信阳市| 西平县| 黎川县| 建水县| 宾阳县| 嘉鱼县| 伊宁市| 越西县| 高尔夫| 全椒县| 环江| 青铜峡市| 文山县| 额尔古纳市| 茂名市| 巍山| 东乡| 临夏县| 聂荣县| 昭通市| 夹江县| 灵璧县| 香格里拉县| 玛纳斯县| 章丘市| 昭平县|