PHPExcel

excel文檔處理對象主要用來管理我們的excel文檔,怎么來管理(通過屬性和方法來管理)?大家知道,類主要是由屬性和方法來組成,通過php程序的手段來管理excel文檔,其實就是通過本對象的屬性和方法來管理,下面我們就來看一下PHPExcel類中都有那些屬性和方法,這些屬性和方法主要用來管理excel文檔的那些方面
getProperties():獲得當前活動狀態工作表的屬性對象,返回屬性對象
getActiveSheet():獲得當前活動狀態的工作表,返回工作表對象
getActiveSheetIndex():獲得當前活動狀態工作表的索引值,返回int
setActiveSheetIndex():設置當前活動狀態工作表的索引,返回工作表對象
getSheetByName():通過工作表名稱得到當前工作表對象,返回工作表對象
getDefaultStyle():獲得excel文檔默認的樣式(所有工作表的樣式),返回樣式對象
createSheet():在當前活動工作表后創建一個新的工作表
getSheetCount():獲得excel文檔中工作表的數量,返回int
getSheetNames():獲得excel文檔中所有工作表名稱組成的數組

(2)PHPExcel_Worksheet:工作表對象


工作表對象,主要用來管理我們的工作表,怎么管理?也是通過屬性和方法來管理,但是工作表對象大部分情況下可通過excel文檔對象來獲取


toArray():把工作表中的數據轉換成數組
fromArray():從數組中獲取數據填充到工作表,返回工作表對象
getCell():獲得單元格對象
getCellByColumnAndRow():通過列索引和行索引獲得指定單元格,返回單元格對象
getDefaultStyle():獲得工作表默認的樣式,返回樣式對象
getHighestColumn():獲得工作表的最大列,返回列的名稱
getColumnDimension():獲得當前列
getStyle():獲得指定單元格的樣式,返回樣式對象
getParent():獲得父類對象,返回excel文檔對象
getTitle():獲得工作表的標題或名稱,返回字符串類型
setCellValue():設置單元格的值,返回工作表對象或單元格對象,完全取決于參數的值
setCellValueByColumnAndRow():通過列索引和行索引設置單元格的值,返回類型同上
setCellValueExplicit():設置單元格的值,并顯示指定數據類型,返回工作表對象
setCellValueExplicitByColumnAndRow():通過列和行索引設置單元格值
setTitle():設置工作表標題


(3)PHPExcel_Cell:單元格對象

(4)PHPExcel_Style:樣式對象,主要用來設置單元格的樣式:對齊方式、字體、邊框、填充等,跟我們之前學過的css樣式差不多,在這里如果想要設置對齊方式、字體大小、邊框顏色、等等都是通過樣式對象來完成的

getActiveCell():獲得當前活動的單元格的名稱,返回string;如,A1
getActiveSheet():獲得當前活動的工作表,返回工作表對象
getAlignment():獲得對齊方式對象,返回對齊方式對象
getBorders():獲得邊框對象,返回邊框對象
getFill():獲得填充對象
getFont():獲得字體對象
setFont():設置字體,返回樣式對象


(5)PHPExcel_Style_Alignment:對齊方式對象



getHorizontal():獲得水平居中方式
getVertical():獲得垂直居中方式
setHorizontal():設置水平居中方式,返回對齊方式對象
setVertical():設置垂直居中方式,返回對齊方式對象


居中方式:
HORIZONTAL_CENTER
HORIZONTAL_CENTER_CONTINUOUS
HORIZONTAL_GENERAL
HORIZONTAL_JUSTIFY
HORIZONTAL_LEFT
HORIZONTAL_RIGHT
VERTICAL_BOTTOM
VERTICAL_CENTER
VERTICAL_JUSTIFY
VERTICAL_TOP


(6)PHPExcel_Style_Font:字體對象


setBold():設置字體加粗
setColor():設置字體顏色
setItalic():設置字體傾斜
setName():設置字體名
setSize():設置字體大小
setUnderline():設置字體下劃線


(7)PHPExcel_Writer_Excel5:寫操作對象,主要用來輸出xls文件


save(工作簿文件名):將工作簿對象中的數據保存到一個工作簿文件中


(8)PHPExcel_Writer_Excel2007:寫操作對象,主要用于輸出xlsx文件


save(工作簿文件名):將工作簿對象中的數據保存到一個工作簿文件中


(5)PHPExcel_Reader_Excel5:讀操作對象,主要用于輸入xls文件

canRead():當前reader對象是否能夠讀工作簿文件
load():從一個工作簿文件中加載工作簿對象,也就是將工作簿文件中的數據加載到工作簿對象中來管理


(9)PHPExcel_IOFactory:讀寫操作對象


createReader():根據參數的不同,創建不同的讀對象:主要作用是讀取工作簿文件中的數據


createWriter():根據參數的不同,返回不同的寫對象:主要作用是將PHPExcel工作簿對象中的數據寫入到一個工作簿文件中


load():從工作簿文件中加載PHPExcel工作簿對象,即:將工作簿文件中數據加載到PHPExcel工作簿對象中來管理




PHPExcel對象:是一個工作簿對象


include_once "PHPExcel/Writer/Excel5.php";//主要用于其它低版本,且文件名后綴為xls的文件,如果我們希望生成后綴名為xls格式的excel文件,建議引入此類庫


include_once "PHPExcel/Writer/Excel2007.php";//主要用于excel2007格式,文件名后綴為xlsx的excel文件,如果我們希望生成后綴名為xlsx格式的excel文件,建議引入此類庫


$objWriter = new PHPExcel_Writer_Excel5($objExcel);//創建一個文件格式寫入對象實例,此對象主要用來寫入內容到指定格式的文件,如,寫入內容到后綴名為xls格式的excel文件等,用于其它板式的格式


$objWriter = new PHPExcel_Writer_Excel2007($objExcel);//創建一個文件格式寫入對象實例,此對象主要用來寫入內容到指定格式的文件,如,寫入內容到后綴名為xls格式的excel文件等,用于excel2007格式
$objWriter->setOffice2003Compatibility(true);//兼容office2003




//設置文檔基本屬性
$objProps = $objExcel->getProperties(); //得到PHPExcel_document文檔對象
$objProps->setCreator("Zeal Li"); //設置作者
$objProps->setLastModifiedBy("Zeal Li"); //設置最后修改時間
$objProps->setTitle("Office XLS Test Document"); //設置標題
$objProps->setSubject("Office XLS Test Document, Demo");//設置主題
$objProps->setDescription("Test document, generated by PHPExcel.");//描
$objProps->setKeywords("office excel PHPExcel"); //關鍵字
$objProps->setCategory("Test"); //分類




$objExcel->setActiveSheetIndex(0);//設置用戶打開excel文件時,看到的首張sheet,如果沒有設置,默認為最后一次操作的sheet


$objActSheet->setTitle('測試Sheet');//設置當前活動的工作簿名稱




//根據單元格名稱設置單元格內容,由PHPExcel根據傳入的內容自動判斷單元格的內容類型
$objActSheet->setCellValue('A1', '字符串內容'); // 字符串內容
$objActSheet->setCellValue('A2', 26); // 數值
$objActSheet->setCellValue('A3', true); // 布爾值
$objActSheet->setCellValue('A4', '=SUM(A2:A2)'); // 公式


/顯式指定單元格的內容類型為字符串類型
$objActSheet->setCellValueExplicit('A5','847475847857487584',PHPExcel_Cell_DataType::TYPE_STRING);


//合并單元格
$objActSheet->mergeCells('B1:C22');




//設置列的寬度
$objActSheet->getColumnDimension('B')->setAutoSize(true);
$objActSheet->getColumnDimension('A')->setWidth(30);


//設置行的高度
$objPHPExcel->getActiveSheet()->getRowDimension('2')->setRowHeight(11.5);



//格式:主要用來對單元格進行操作,如,設置字體、設置對齊方式、設置邊框等
$objStyleA5 = $objActSheet->getStyle('A5');//獲取A5單元格的樣式


//設置單元格的字體
$objFontA5 = $objStyleA5->getFont(); //獲得字體
$objFontA5->setName('宋體');//設置字體名稱
$objFontA5->setSize(10); //設置字體大小
$objFontA5->setBold(true);//設置字體加粗
$objFontA5->getColor()->setARGB('FF999999');//設置字體顏色


//設置單元格的對齊方式
$objAlignA5 = $objStyleA5->getAlignment();//獲得對齊方式
$objAlignA5->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);//水平居右
$objAlignA5->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);//垂直居中


//設置單元格的邊框
$objBorderA5 = $objStyleA5->getBorders();//獲取邊框
$objBorderA5->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);//邊框樣式
$objBorderA5->getTop()->getColor()->setARGB('FFFF0000');//頂部邊框的顏色
$objBorderA5->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objBorderA5->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);//左樣式
$objBorderA5->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);//右樣式


//設置單元格的填充色
$objFillA5 = $objStyleA5->getFill();//填充
$objFillA5->setFillType(PHPExcel_Style_Fill::FILL_SOLID);//填充類型
$objFillA5->getStartColor()->setARGB('FFEEEEEE');


//計算單元格的值
$objPHPExcel->getActiveSheet()->setCellValue('B7', '=SUM(B5:C5)');
$objPHPExcel->getActiveSheet()->getCell('B7')->getCalculatedValue();
// 如果要獲取單元格的一個值,首先需要通過工作表的getCell方法獲取到一個單元格對象,然后再通過單元格對象的getValue方法得到單元格的值, 如果單元格的值是通過計算得到的,則需要使用getCalculatedValue方法獲取單元格的值,設置單元格的值,我們只需要通過工作表的 setCellValue方法來設置即可




//$dateTimeNow=time();
$objPHPExcel->getActiveSheet()->setCellValue('C10', PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow ));//41105.75


$objPHPExcel->getActiveSheet()->getStyle('C10')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4);//18:00:54, 只是換了一種顯示方式,并不會改變原來值的類型


echo gettype($objPHPExcel->getActiveSheet()->getCell('C10')->getValue());//double
echo $objPHPExcel->getActiveSheet()->getCell('C10')->getValue();//41105.75


//'2010-10-21'一定要放在引號中,否則顯示的值為,1979文本(推薦)
$objPHPExcel->setActiveSheetIndex(0)->setCellValueExplicit("D1", '2010-10-21', PHPExcel_Cell_DataType::TYPE_STRING); //特征:字符串類型都是居左顯示


//添加一個新的worksheet
$objExcel->createSheet();//創建一個新的工作表
$objExcel->getSheet(1)->setTitle('測試2');//設置當前工作表的標題


//保護單元格
$objExcel->getSheet(1)->getProtection()->setSheet(true);
$objExcel->getSheet(1)->protectCells('A1:C22', 'PHPExcel');


//輸出內容到excel文件,并將文件保存在服務器上
$objWriter->save("test.xls");


//強制輸出內容到瀏覽器下載
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header('Content-Disposition:inline;filename="'.$outputFileName.'"');
header("Content-Transfer-Encoding: binary");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Pragma: no-cache");
$objWriter->save('php://output');//參數-表示直接輸出到瀏覽器,供客戶端下載


//excel讀取對象
$PHPReader = new PHPExcel_Reader_Excel5();//創建一個excel文件的讀取對象
$PHPExcel = $PHPReader->load($filePath);//讀取一張excel表,返回excel文件對象
$currentSheet = $PHPExcel->getSheet(0);//讀取excel文件中的第一張工作表
$allColumn = $currentSheet->getHighestColumn();//取得當前工作表最大的列號,如,E
$allRow = $currentSheet->getHighestRow();//取得當前工作表一共有多少行


//設置工作簿默認的樣式
$objPHPExcel->getDefaultStyle()->getFont()->setName('Arial');
$objPHPExcel->getDefaultStyle()->getFont()->setSize(8);


//合并單元格
$objPHPExcel->getActiveSheet()->mergeCells('A18:E22');

轉載于:https://www.cnblogs.com/GaoAnLee/p/5213338.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/375054.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/375054.shtml
英文地址,請注明出處:http://en.pswp.cn/news/375054.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

靶場練習第十天~vulnhub靶場之dc-2

一、準備工作 靶機下載地址鏈接: 百度網盤 請輸入提取碼 提取碼: ib86 二、信息收集 1.nmap的信息收集 (1)使用nmap 192.168.101.0/24,發現靶機地址為192.168.101.115 (2)對靶機做進一步探測,發現靶機開…

Ubuntu 14.10 創建虛擬網卡實現橋接網絡

目標需求:在Ubuntu主機創建一張虛擬網卡,使得搭建在VirtualBox中的其他主機能借助虛擬網卡構建的局域網進行相互間的通訊 步驟一:準備工具包 安裝 uml-utilities 以及 bridge-utils sudo apt-get install uml-utilities bridge-utils 步驟二&…

iOS定時器-- NSTimer 和CADisplaylink

iOS定時器-- NSTimer 和CADisplaylink 一、iOS中有兩種不同的定時器: 1. NSTimer(時間間隔可以任意設定,最小0.1ms)// If seconds is less than or equal to 0.0, this method chooses the nonnegative value of 0.1 millisecond…

靶場練習第十一天~vulnhub靶場之dc-3

一、準備工作 1.靶場鏈接: 百度網盤 請輸入提取碼 提取碼: 48d3 2.啟動靶場后會遇到如下情況: 2-1具體解決辦法如下: 啟動成功 3.查看kali的ip:ifconfig 二、信息收集 1.nmap的信息收集 (1)尋找靶機的ip&#xf…

UNIX環境高級編程一書中apue.h找不到

apue.h是作者為了方便自己寫的一個庫,在http://www.apuebook.com選擇你對應書中的source code,然后解壓壓縮包中在/include/apue.h以及/lib/error.c復制到你文件系統中/usr/include中即可。另外在apue.h中#include "error.c"即可。這樣gcc編譯…

大齡程序員怎樣渡過中年危機?(轉)

大齡程序員怎樣渡過中年危機? 作者前言: 話說再有十幾天就進入2016年了,想到這,我不由得五味雜陳。2016年對我來說是一個特殊的年份,因為我即將40歲了,人生正式告別青年期,進入中年了。 在娛樂圈…

靶場練習第十二天~vulnhub靶場之dc-4

一、準備工作 1.靶機下載鏈接 鏈接: 百度網盤 請輸入提取碼 提取碼: 3hq4 2.用ifconfig查看kali的ip 二、信息收集 1.nmap的信息收集 (1)主機發現 命令:nmap 192.168.101.0/24 (2)掃描靶機詳細信息 發現主機 192…

網絡命令-nc(二)

繼續Netcat 這個命令吧 1&#xff1a;遠程拷貝文件 在本地輸出 文件debian.img 到 192.168.5.40 主機12345端口監聽 nc -v 192.168.5.40 12345 < debian.img 在192.168.5.40 主機12345端口監聽&#xff0c;將文件指定為debian-copy.img nc -l -v 12345 > debian-copy.im…

靶場練習第十三天~vulnhub靶場之dc-5

一、準備工作 1.靶機環境搭建 下載鏈接: https://pan.baidu.com/s/1csvuJ_NVCBvVr75KhxyM3Q?pwdxie7 提取碼: xie7 2.kali的ip 命令&#xff1a;ifconfig 3.kali和靶機的都設置為NAT模式 二、信息收集 1.nmap的信息收集 &#xff08;1&#xff09;尋找靶機的ip 命令&…

Ubuntu中輸入輸出重定向及管道技術簡述

輸出 1、標準輸出 定義&#xff1a;程序在默認情況下輸出結果的地方&#xff08;stdout&#xff09;。 2、輸出重定向 定義&#xff1a;用于把數據的輸出轉移到另一個地方去。 3、Ubuntu中例子 $ls > ~/ls_out ##不顯示在顯示器上而是輸入到文件ls_out中 uname -r > ls_…

activex打包

http://www.cnblogs.com/weiwin/p/4493835.html activeX 打包 原文 http://www.docin.com/p-409284488.html CAB打包文檔說明 文檔目的本文檔的目的在于說明將ocx和dll以及相關的文件打包成一個CAB包&#xff0c;以便在網頁下調用ocx控件時免去手工將dll和其他一下文件拷貝到客…

靶場練習第十四天~vulnhub靶場之dc-6

一、準備工作 kali和靶機都選擇NAT模式&#xff08;kali與靶機同網段&#xff09; 1.靶場環境 下載鏈接: 百度網盤 請輸入提取碼 提取碼: bazx 2.kali的ip 命令:ifconfig 3.靶機的ip 掃描靶機ip 命令&#xff1a;sudo arp-scan -l 二、信息收集 1.nmap的信息收集 &#…

最短路徑Dijkstra算法和Floyd算法整理、

轉載自&#xff1a;http://www.cnblogs.com/biyeymyhjob/archive/2012/07/31/2615833.html 最短路徑—Dijkstra算法和Floyd算法 Dijkstra算法 1.定義概覽 Dijkstra(迪杰斯特拉)算法是典型的單源最短路徑算法&#xff0c;用于計算一個節點到其他所有節點的最短路徑。主要特點是以…

Java Script 中 ==(Equal) 和 === (Identity Equal) 的區別和比較算法邏輯

判斷兩個變量是否相等在任何編程語言中都是非常重要的功能。 JavaScript 提供了 和 兩種判斷兩個變量是否相等的運算符&#xff0c;但我們開始學習的時候 JavaScript 的時候&#xff0c;就被一遍又一遍的告知&#xff1a; 要求變量的類型和值均相等&#xff0c;才能返回true…

靶場練習第十五天~vulnhub靶場之dc-7

一、準備工作 kali和靶機都選擇NAT模式&#xff08;kali與靶機同網段&#xff09; 1.靶場環境 下載鏈接:https://download.vulnhub.com/dc/DC-7.zip 2.kali的ip 命令:ifconfig 3.靶機的ip 掃描靶機ip sudo arp-scan -l 二、信息收集 1.nmap的信息收集 &#xff08;1&…

ubuntu系統下如何修改host

Ubuntu系統的Hosts只需修改/etc/hosts文件&#xff0c;在目錄中還有一個hosts.conf文件&#xff0c;剛開始還以為只需要修改這個就可以了&#xff0c;結果發現是需要修改hosts。修改完之后要重啟網絡。具體過程如下&#xff1a;1、修改hostssudo gedit /etc/hosts2、添加解析記…

Matplotlib不顯示圖形

安裝好了Matplotlib&#xff0c;使用官方一個例子測試運行時&#xff0c;發現使用畫圖功能時&#xff0c;運行腳本老是顯示不出圖像&#xff0c;Google了一下&#xff0c;后來發現是matplotlibrc文件沒配置好。 參考了官方文檔&#xff0c;修改步驟如下 1.查找matplotlibrc文件…

靶場練習第十六天~vulnhub靶場之dc-8

一、準備工作 kali和靶機都選擇NAT模式&#xff08;kali與靶機同網段&#xff09; 1.靶場環境 下載鏈接:https://download.vulnhub.com/dc/DC-8.zip 2.kali的ip 命令:ifconfig 3.靶機的ip 掃描靶機ip sudo arp-scan -l 二、信息收集 1.nmap的信息收集 &#xff08;1&…

【SpringMVC】SpringMVC系列4之@RequestParam 映射請求參數值

4、RequestParam 映射請求參數值 4.1、概述 Spring MVC 通過分析處理方法的簽名&#xff0c;將 HTTP 請求信息綁定到處理方法的相應人參中。Spring MVC 對控制器處理方法簽名的限制是很寬松的&#xff0c;幾乎可以按喜歡的任何方式對方法進行簽名。必要時可以對方法及方法入…

Sprint3

進展&#xff1a;今天主要是各自熟悉安卓應用開發平臺&#xff0c;設計了圖標&#xff0c;沒什么實際上的進展。 燃盡圖&#xff1a; 團隊工作照&#xff1a; 轉載于:https://www.cnblogs.com/XJXYJ/p/4495810.html