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

php excel 设置常规_php实现的操作excel类详解相关推荐

  1. android 最新消息滚动,Android 滚动操作Scroller类详解

    Scroller这个类理解起来有一定的困难,刚开始接触Scroller类的程序员可能无法理解Scroller和View系统是怎么样联系起来的.我经过自己的学习和实践,对Scroller的用法和工作原理 ...

  2. 计划任务计算机怎么进入,windows7计划任务如何设置?windows7计划任务操作步骤图文详解...

    尽管win7系统已经停止服务了,但还是有很多朋友使用.在Windows7系统中,有一个计划任务的功能,它可以将任何脚本.程序或文档安排在某个最方便的时间运行.你可以简单的理解为定时定点帮你开启程序文档 ...

  3. java excel api 下载文件_Java-Excel Java操作Excel POI(Jakarta POI API) - 下载 - 搜珍网

    Java操作Excel/Jakarta POI API/data/Jakarta POI API.doc Java操作Excel/Jakarta POI API/jar/poi-3.0.2-FINAL ...

  4. pdo mysql 绑定查询_php mysql PDO 查询操作的实例详解

    php mysql PDO 查询操作的实例详解 php mysql PDO 查询操作的实例详解 这篇文章主要介绍了php mysql PDO 查询操作的实例详解的相关资料,希望通过本文能帮助到大家,需 ...

  5. 兄弟机cnc系统面板图解_数控机床操作面板图文详解

    <数控机床操作面板图文详解>由会员分享,可在线阅读,更多相关<数控机床操作面板图文详解(53页珍藏版)>请在人人文库网上搜索. 1.数 控 车 床 编 程 和 操 作(一) 熟 ...

  6. Python零基础速成班-第14讲-Python处理Excel和Word,使用openpyxl和docx包详解,图表入门

    Python零基础速成班-第14讲-Python处理Excel和Word,使用openpyxl和docx包详解,图表入门 学习目标 Python处理Excel(使用openpyxl包).图表入门\ P ...

  7. 2013河北省职称计算机应用能力考试操作题答案,2013河北省职称计算机应用能力考试操作题步骤详解(部分).doc...

    2013河北省职称计算机应用能力考试操作题步骤详解(部分) 2013河北省职称计算机应用能力考试操作题步骤详解PAGE PAGE - 11 - 共 NUMPAGES 11页操作题PPT 1-5PPT操 ...

  8. php node 目录,node.js基于fs模块对系统文件及目录进行读写操作的方法详解

    本文主要介绍了node.js基于fs模块对系统文件及目录进行读写操作的方法,结合实例形式分析了nodejs使用fs模块针对文件与目录的读写.创建.删除等相关操作技巧,需要的朋友可以参考下. 如果要用这 ...

  9. 2013河北省职称计算机应用能力考试操作题答案,(2013河北省职称计算机应用能力考试操作题步骤详解PPT部分.doc...

    (2013河北省职称计算机应用能力考试操作题步骤详解PPT部分 操作题PPT 1-5 PPT操作练习一 打开PPT文件夹下的"PPT_1.PPT"演示文稿文件,然后进行如下操作: ...

最新文章

  1. 轻量应用服务器MySQL远程连接踩坑
  2. Android 异常: failed to connect to localhost/127.0.0.1
  3. 小米造车150天:烈火烹油第一枪
  4. 5弹出搜索框_实用小技巧,电脑总是弹出广告,手把手教你永久关闭广告弹窗...
  5. EasyJWeb-Velocity脚本简明教程
  6. ros和java通讯_ROS学习之路(二)——通信架构(上)
  7. AOP in Asp.net MVC
  8. eclipse启动出现“An Error has Occurred. See the log file”解决方法
  9. ASP+Access数据库的终极安全大法18则(原创)
  10. 2016-11-15NOIP模拟赛
  11. 微信公众号 第三方登录 获取微信用户信息(java版)
  12. websocket 服务器外网访问
  13. mysql经典45道题_MySQL查询 45道练习题
  14. 一个javaweb基础的小游戏。。俄罗斯方块。。。
  15. 专访STEM领域人才资深人工智能图像算法工程师张旦
  16. 中国报纸今年十大流行语发布:虐俘和审计风暴
  17. 大端小端存储方式详解
  18. 解决Edge默认打开PDF内存不足
  19. 电信宽带连接不上无线可连接服务器,我家装的是电信的宽带,能连上无线网络,但是就是不能上网连接的信号也是非常好,请问是什么问题...
  20. 打开命令行窗口的方式

热门文章

  1. 【Java】数据结构——队列(图文)
  2. 外部jar包_大数据系列之PySpark读写外部数据库
  3. java泛型_Java核心知识 基础五 JAVA 泛型
  4. java+fseek+函数_函数fseek() 用法(转)
  5. mysql二级缓存,mybatis的动态sql和二级缓存
  6. visio2013复制到word有多余白边_学习工坊(一)|实用技巧之Word篇
  7. cstring移除指定字符串_从String中移除空白字符的多种方式!?差别竟然这么大!...
  8. C语言如何编辑资源文件,用C语言做个简单的计算机,上面是代码,请教上资源文件在哪里编写,要新建什么文件...
  9. python刷新_如何在python中刷新输入流?
  10. php5.4源码下载,WordPress v5.4.2官方正式版源码下载