php 圖表的操作
阿新 • • 發佈:2017-07-11
office title 編寫 學生 填充 nec tin open cell
<?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 $objSheet=$objPHPExcel->getActiveSheet();//獲得當前活動sheet /**本節課程代碼編寫開始**/ $array=array( array("","一班","二班","三班"), array("不及格",20,30,40), array("良好",30,50,55), array("優秀",15,17,20) );//準備數據 $objSheet->fromArray($array);//直接加載數組填充進單元格內 //開始圖表代碼編寫 $labels=array( new PHPExcel_Chart_DataSeriesValues(‘String‘,‘Worksheet!$B$1‘,null,1),//一班 new PHPExcel_Chart_DataSeriesValues(‘String‘,‘Worksheet!$C$1‘,null,1),//二班 new PHPExcel_Chart_DataSeriesValues(‘String‘,‘Worksheet!$D$1‘,null,1),//三班 );//先取得繪制圖表的標簽 $xLabels=array( new PHPExcel_Chart_DataSeriesValues(‘String‘,‘Worksheet!$A$2:$A$4‘,null,3)//取得圖表X軸的刻度 ); $datas=array( new PHPExcel_Chart_DataSeriesValues(‘Number‘,‘Worksheet!$B$2:$B$4‘,null,3),//取一班的數據 new PHPExcel_Chart_DataSeriesValues(‘Number‘,‘Worksheet!$C$2:$C$4‘,null,3),//取二班的數據 new PHPExcel_Chart_DataSeriesValues(‘Number‘,‘Worksheet!$D$2:$D$4‘,null,3)//取三班的數據 );//取得繪圖所需的數據 $series=array( new PHPExcel_Chart_DataSeries( PHPExcel_Chart_DataSeries::TYPE_LINECHART, PHPExcel_Chart_DataSeries::GROUPING_STANDARD, range(0,count($labels)-1), $labels, $xLabels, $datas ) );//根據取得的東西做出一個圖表的框架 $layout=new PHPExcel_Chart_Layout(); $layout->setShowVal(true); $areas=new PHPExcel_Chart_PlotArea($layout,$series); $legend=new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_RIGHT,$layout,false); $title=new PHPExcel_Chart_Title("高一學生成績分布"); $ytitle=new PHPExcel_Chart_Title("value(人數)"); $chart=new PHPExcel_Chart( ‘line_chart‘, $title, $legend, $areas, true, false, null, $ytitle );//生成一個圖標 $chart->setTopLeftPosition("A7")->setBottomRightPosition("K25");//給定圖表所在表格中的位置 $objSheet->addChart($chart);//將chart添加到表格中 $objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel,‘Excel2007‘);//生成excel文件 $objWriter->setIncludeCharts(true); //$objWriter->save($dir."/export_1.xls");//保存文件 browser_export(‘Excel2007‘,‘browser_chart.xlsx‘);//輸出到瀏覽器 $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‘);//禁止緩存 } ?>
<?php header("Content-Type:text/html;charset=utf-8"); $dir=dirname(__FILE__);//找到當前腳本所在路徑 require $dir."/PHPExcel/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文件裏有多少個sheet for($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 圖表的操作