本文实例讲述了php实现的操作excel类。分享给大家供大家参考,具体如下:
<?phpclass 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;//构造函数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);}//设置Sheetpublic 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();}}//取得表所有值并写进数组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;}//返回表格内容数组public function getAllData(){return $this->cells;}//返回制定单元格内容public function Cell($row,$col){return $this->worksheet->Cells($row,$col)->Value;}//取得表格字段名数组public function getFields(){for($i=1;$i<$this->maxcols;$i++){$this->fields[]=$this->worksheet->Cells(1,$i)->value;}return $this->fields;}//修改制定单元格内容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();}}//修改一行数据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();}}}//取得总列数private function maxCols(){$i=1;while(true){if(0==$this->worksheet->Cells(1,$i)){return $i;break;}$i++;}}//取得总行数private function maxRows(){$i=1;while(true){if(0==$this->worksheet->Cells($i,1)){return $i;break;}$i++;}}//读取制定行数据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.="商务联系QQ:".$this->link_qq."<br>"; //$message.="商务电话QQ:".$this->link_tel."<br>"; //$message.="联系人:".$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相关内容感兴趣的读者可查看本站专题:《php操作office文档技巧总结(包括word,excel,access,ppt)》
希望本文所述对大家PHP程序设计有所帮助。