php实现的操作excel类详解
程序员文章站
2023-10-31 14:55:16
本文实例讲述了php实现的操作excel类。分享给大家供大家参考,具体如下:
本文实例讲述了php实现的操作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; //构造函数 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(); } } //取得表所有值并写进数组 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程序设计有所帮助。