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.pswp.cn/news/534598.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/534598.shtml
英文地址,請注明出處:http://en.pswp.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…