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程序设计有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/534598.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php析构函数使用,php析构函数__destruct()使用方法及实例讲解

通过上一篇文章《php 构造函数__construct()使用分析》的讲解&#xff0c;我们已经知道了什么叫构造方法。那么与构造方法对应的就是析构方法。析构方法允许在销毁一个类之前执行的一些操作或完成一些功能&#xff0c;比如说关闭文件、释放结果集等。析构方法是PHP5才引进的新内…

ubuntu创建php文件,ubuntu系统创建桌面快捷方式的方法

在ubuntu系统中&#xff0c;自己安装的程序往往没有创建桌面快捷方式&#xff0c;每次都通过终端然后输入绝对路去径执行命令比较繁琐&#xff0c;其实可以像windows那样自己在桌面程序创建程序的快捷方式&#xff0c;这样方便了每次的启动。这里以Navicat为例说明一下在linux(…

php设计模式及案例分析,一个案例来认识PHP经典设计模式 | 张先生博客

/*** 单例模式*/class Site{//属性public $siteName;//本类的静态实例public static $instance null;//禁用掉构造器private function __construct($siteName){$this->siteName $siteName;}//获取本类唯一实例public static function getInstance($siteNme 默认siteName值…

php如何加密图片,php实现图片加密解密,支持设置密码 (两年后版本!)

* by hello* 84587470** php 文件加密类&#xff0c;支持设置密码&#xff0c;图片&#xff0c;文件都可以&#xff01;情侣们的福音&#xff01;&#xff01;&#xff01;**/$from C:\Users\Administrator\Desktop\t\test.png;$to C:\Users\Administrator\Desktop\t\\;//加密…

php面向对象编程代码怎么写,php面向对象编程(一)

类与对象关系&#xff1a;类就像一个人类的群体 我们从类中实例化一个对象 就像是制定一个人。面向对象程序的单位就是对象&#xff0c;但对象又是通过类的实例化出来的&#xff0c;所以我们首先要做的就是如何来声明类&#xff0c; 做出来一个类很容易。类的格式class 类名 { …

雅马哈php mt7,雅马哈专业录音室监听耳机 HPH-MT7 正式发售!

从 NS-10M 监听音箱到 MSP 系列和 HS 系列&#xff0c;雅马哈始终秉持忠实的设计理念&#xff0c;聚焦声学精度&#xff0c;为音频专家提供出色的平台&#xff0c;构建并成就他们专属的专业之声。MT7录音室监听耳机承袭了这一基本研发理念,重现最为精细的声音&#xff0c;力求满…

php 支付签名验证失败,choosewxpay fail解决,微信支付签名验证错误解决

require_once("config.php"); //这个文件原来写过的博客有http://jipq1016.com/display.php?id9//统一下单$openid$_POST[openid];$arr[appid]$appid; //商户appid$arr[mch_id]$mch_id; //微信支付…

趣学java,编程趣学习app

编程趣学习在这里会有多种编程语言是可以去学习的Java或者是c&#xff0c;入门级的海鸥就是更加有难度的都是可以选择一个自己可以去学习的课程&#xff0c;跟着讲师一同开始及逆行语言基础知识的学习后面大家就是根据自己的的课后作业完成&#xff0c;去自己调试新的程序。编程…

cgi php脚本运行超时间,php超时 - php-cgi调用外部程序超时,但php在命令行模式下能完整运行外部程序...

运行环境为Ubuntu14.04php脚本无论用Apache还是nginx都会在R语言运行一半时终止运行(在需要等待运行3~5秒时的步骤停止)但用php在命令行模式php -f result.php却能完整运行。请问是否能通过修改php配置&#xff0c;解决这个问题回复内容&#xff1a;运行环境为Ubuntu14.04php脚…

oracle无法分区,oracle已存在的表添加新分区的方法

现在有一张表如下&#xff1a;create table WRITE_USER(area_code VARCHAR2(8),user_no VARCHAR2(20),user_name VARCHAR2(100),address VARCHAR2(100),mon NUMBER(6),mon_sn NUM…

oracle常用表查询,ORACLE EBS常用表及查询语句(最终整理版)

select * from ar_batches_all 事务处理批select * from ra_customer_trx_all 发票头select * from ra_customer_trx_lines_all 发票行select * from ra_cust_trx_line_gl_dist_all 发票分配select * from ar_cash_receipts_all 收…

aix升级新安装oracle,安装Oracle 11gR2 AIX 5.3 升级到TL11的一些小记录

Dep-app 需要locdevices.usbif.08025002.rtersct.compat.basic.sp打5300-11-00-0943时需要devices.usbif.08025002.rte 5.3.11.0 重启可以 或 删除 devices.usbif.08025002.rte 5.3.7.7打5300-11-04-1015时需要bos.sysmgt.sysbr 5.3.11.0 5.3.11.3bos.sysmgt.sysbr 需要bos…

oracle连续状态相同,数据库共有三种状态:quiesce、resrict、suspend

数据库共有三种状态&#xff1a;quiesce、resrict、suspend一、quiesce模式首先来说说数据库的静默状态静默状态是指数据库中只存在sys和system用户建立的活动会话。只有dba能继续操作数据库。此状态下可以进行一些在非静默状态下执行可能存在不安全因素的特殊操作。对于必须持…

oracle数据库连接名是什么,连接到Oracle数据库的几种命名方式

连接到Oracle数据库的几种命名方式从事 Oracle 相关工作的人&#xff0c;每天都会使用各种工具连接到 Oracle 数据库&#xff0c;比如&#xff1a;SQL*Plus、PL/SQL、TOAD、SQLDeveloper 等等&#xff0c;下面就列举了几种连接到 Oracle 的方式&#xff0c;本例中使用的是 SQL*…

jmeter无法释放oracle连接,jmeter 连接ORACLE数据库错误及解决方法

问题一&#xff1a;Response message: java.sql.SQLException:Cannot load JDBC driver class ‘oracle.jdbc.driver.OracleDriver‘未引入ojdbc14.jar包所致&#xff0c;2种解决方案&#xff0c;最好重启一下&#xff1a;1.在测试计划页面中&#xff0c;点击浏览&#xff0c;选…

oracle11g ora 12518,servlet执行update报错ORA-12518

ORA-12518: TNS:listener could not hand off client connection这种错误一般是在测试数据库并发性的&#xff0c;多个用户的&#xff0c;后台用servleORA-12518: TNS:listener could not hand off client connection这种错误一般是在测试数据库并发性的&#xff0c;多个用户的…

linux怎么添加头文件目录下,linux下编写c++,include的那些头文件在什么地方?

炎炎设计C/C程序在linux下被编译和连接时&#xff0c;GCC/G会查找系统默认的include和link的路径&#xff0c;以及自己在编译命令中指定的路径。自己指定的路径就不说了&#xff0c;这里说明一下系统自动搜索的路径。【1】include头文件路径除了默认的/usr/include, /usr/local…

linux内核调度 0号进程,Linux内核源代码情景分析---第四章 进程与进程调度

4.1 进程四要素什么是进程&#xff1f;1&#xff1a;有一段代码段供其执行&#xff0c;这代码段不一定是进程所专用&#xff0c;可以与其他进程公用。2&#xff1a;每个进程有其专用的系统空间的堆栈(栈)【这个栈是进程起码的“私有财产”】3&#xff1a;在内核中&#xff0c;要…

redhat linux 系统管理,红帽系统管理一 (RH124)

红帽系统管理一 (RH124)时间&#xff1a;2018-04-24 14:06:52第 1 部分 — 红帽企业 Linux 管理员所需掌握的核心系统管理任务本课程涉及使用红帽 企业 Linux 7。红帽系统管理一 (RH124) 专为之前没有 Linux 系统管理经验的 IT 专业人员设计。本课程侧重讲解 Linux 系统的核心管…

linux命令行聊天,Linux 下使用talk 进行聊天

Linux中talk命令参数程序用于Internet上两个用户之间进行“交谈”&#xff1a;通过键盘输入“说话”&#xff0c;通过看终端屏幕“聆听”。Linux中talk命令参数程序的使用很简单&#xff0c;只要知道交谈对象的地址&#xff0c;就可以邀请对方交谈。格式&#xff1a;talk usert…