首页 > 开发 > PHP > 正文

php实现的操作excel类详解

2024-05-04 23:42:18
字体:
来源:转载
供稿:网友
这篇文章主要介绍了php实现的操作excel类,较为详细的分析说明了PHP操作excel的具体技巧,包括PHP针对excel的创建、打开、读取、修改等,需要的朋友可以参考下
 

本文实例讲述了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);  }  //设置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程序设计有所帮助。



注:相关教程知识阅读请移步到PHP教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表