php excel 设置常规_php实现的操作excel类详解

本文实例讲述了php实现的操作excel类。分享给大家供大家参考,具体如下:

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;$imaxcols;$i++)

{

for($j=2;$jmaxrows;$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;$imaxcols;$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;$imaxcols;$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."
";

//$message.="电子邮箱为:".$this->link_email."
";

//$message.="商务联系QQ:".$this->link_qq."
";

//$message.="商务电话QQ:".$this->link_tel."
";

//$message.="联系人:".$this->link_people."
";

$smtp->debug=false;

foreach($str['email'] as $key=>$value){

$smtpemailto=$value;

@$smtp->sendmail($smtpemailto,$smtpuseremail,$mailsubject,$message,$mailtype);

exit;

}

//exit;

$excel->Close();

?>

希望本文所述对大家PHP程序设计有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值