php實現(xiàn)的操作excel類詳解
更新時間:2016年01月15日 09:39:15 作者:乘著風在飛
這篇文章主要介紹了php實現(xiàn)的操作excel類,較為詳細的分析說明了PHP操作excel的具體技巧,包括PHP針對excel的創(chuàng)建、打開、讀取、修改等,需要的朋友可以參考下
本文實例講述了php實現(xiàn)的操作excel類。分享給大家供大家參考,具體如下:
<?php class Excel { static $instance=null; private $excel=null; private $workbook=null; private $workbookadd=null; private $worksheet=null; private $worksheetadd=null; private $sheetnum=1; private $cells=array(); private $fields=array(); private $maxrows; private $maxcols; private $filename; //構(gòu)造函數(shù) private function Excel() { $this->excel = new COM("Excel.Application") or die("Did Not Connect"); } //類入口 public static function getInstance() { if(null == self::$instance) { self::$instance = new Excel(); } return self::$instance; } //設置文件地址 public function setFile($filename) { return $this->filename=$filename; } //打開文件 public function Open() { $this->workbook=$this->excel->WorkBooks->Open($this->filename); } //設置Sheet public function setSheet($num=1) { if($num>0) { $this->sheetnum=$num; $this->worksheet=$this->excel->WorkSheets[$this->sheetnum]; $this->maxcols=$this->maxCols(); $this->maxrows=$this->maxRows(); $this->getCells(); } } //取得表所有值并寫進數(shù)組 private function getCells() { for($i=1;$i<$this->maxcols;$i++) { for($j=2;$j<$this->maxrows;$j++) { $this->cells[$this->worksheet->Cells(1,$i)->value][]=(string)$this->worksheet->Cells($j,$i)->value; } } return $this->cells; } //返回表格內(nèi)容數(shù)組 public function getAllData() { return $this->cells; } //返回制定單元格內(nèi)容 public function Cell($row,$col) { return $this->worksheet->Cells($row,$col)->Value; } //取得表格字段名數(shù)組 public function getFields() { for($i=1;$i<$this->maxcols;$i++) { $this->fields[]=$this->worksheet->Cells(1,$i)->value; } return $this->fields; } //修改制定單元格內(nèi)容 public function editCell($row,$col,$value) { if($this->workbook==null || $this->worksheet==null) { echo "Error:Did Not Connect!"; }else{ $this->worksheet->Cells($row,$col)->Value=$value; $this->workbook->Save(); } } //修改一行數(shù)據(jù) public function editOneRow($row,$arr) { if($this->workbook==null || $this->worksheet==null || $row>=2) { echo "Error:Did Not Connect!"; }else{ if(count($arr)==$this->maxcols-1) { $i=1; foreach($arr as $val) { $this->worksheet->Cells($row,$i)->Value=$val; $i++; } $this->workbook->Save(); } } } //取得總列數(shù) private function maxCols() { $i=1; while(true) { if(0==$this->worksheet->Cells(1,$i)) { return $i; break; } $i++; } } //取得總行數(shù) private function maxRows() { $i=1; while(true) { if(0==$this->worksheet->Cells($i,1)) { return $i; break; } $i++; } } //讀取制定行數(shù)據(jù) public function getOneRow($row=2) { if($row>=2) { for($i=1;$i<$this->maxcols;$i++) { $arr[]=$this->worksheet->Cells($row,$i)->Value; } return $arr; } } //關閉對象 public function Close() { $this->excel->WorkBooks->Close(); $this->excel=null; $this->workbook=null; $this->worksheet=null; self::$instance=null; } }; /* $excel = new COM("Excel.Application"); $workbook = $excel->WorkBooks->Open('D://Apache2//htdocs//wwwroot//MyExcel.xls'); $worksheet = $excel->WorkSheets(1); echo $worksheet->Cells(2,6)->Value; $excel->WorkBooks->Close(); */ $excel=Excel::getInstance(); $excel->setFile("D://kaka.xls"); $excel->Open(); $excel->setSheet(); for($i=1;$i<16;$i++ ) { $arr[]=$i; } //$excel->editOneRow(2,$arr); //print_r($excel->getAllData()); $str=$excel->getAllData(); include_once('mail.class.php'); $smtpserver="smtp.yeah.net"; $smtpserverport=25; $smtpuseremail="yanqihu58@yeah.net"; $smtpemailto="yanqihu@139.com"; $smtpuser="yanqihu58"; $smtppwd="123456789"; $mailtype="HTML"; $smtp=new smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppwd); $message="你好"; //$message.="首頁連接地址為:".$this->link_url."<br>"; //$message.="電子郵箱為:".$this->link_email."<br>"; //$message.="商務聯(lián)系QQ:".$this->link_qq."<br>"; //$message.="商務電話QQ:".$this->link_tel."<br>"; //$message.="聯(lián)系人:".$this->link_people."<br>"; $smtp->debug=false; foreach($str['email'] as $key=>$value){ $smtpemailto=$value; @$smtp->sendmail($smtpemailto,$smtpuseremail,$mailsubject,$message,$mailtype); exit; } //exit; $excel->Close(); ?>
更多關于PHP操作Excel相關內(nèi)容感興趣的讀者可查看本站專題:《php操作office文檔技巧總結(jié)(包括word,excel,access,ppt)》
希望本文所述對大家PHP程序設計有所幫助。
相關文章
PHP中curl三種Post請求數(shù)據(jù)的方式小結(jié)
這篇文章主要給大家介紹了關于PHP中curl三種Post請求數(shù)據(jù)的方式,在PHP開發(fā)的過程中經(jīng)常需要發(fā)送POST請求,POST相比GET要安全很多,而且傳輸?shù)臄?shù)據(jù)量也較大,需要的朋友可以參考下2023-09-09PHP+MYSQL會員系統(tǒng)的開發(fā)實例教程
這篇文章主要介紹了PHP+MYSQL會員系統(tǒng)的開發(fā)實例教程,通過一個完整的會員系統(tǒng)開發(fā),進一步加深對PHP+MySQL程序設計流程的認識,需要的朋友可以參考下2014-08-08PHP幾個數(shù)學計算的內(nèi)部函數(shù)學習整理
下面主要講述 round, floor, ceil, pow, rand,max, min, decbin, bindec, dechex, hexdec, decoct, octdec 函數(shù)。2011-08-08php使用substr()和strpos()聯(lián)合查找字符串中某一特定字符的方法
這篇文章主要介紹了php使用substr()和strpos()聯(lián)合查找字符串中某一特定字符的方法,涉及php中substr()和strpos()函數(shù)的使用技巧,需要的朋友可以參考下2015-05-05