PHPEXCEL的用法與簡介_PHP教程

來源:互聯網
上載者:User
PHPEXCEL是一個用來產生excel的php外掛程式,他可以很方便的對excel資料進行操作,如:產生excel,修改excel資料等等。

一、PHPEXCEL簡介

PHPEXCEL提供了一系列的API,能夠解析與產生excel,pdf之類的文檔。

PHPEXCEL雖然強大,不過使用起來相對有些繁鎖,如果需要輸出較為複雜格式時,是一個不錯的選擇。可以到官方下載到源碼。

二、PHPEXCEL部分函數

設定當前的活頁簿,返回該活頁簿對象:
$excelSheet = $excel->setActiveSheetIndex(0);

合併儲存格,返回該儲存格對象,以下樣本即合并A列第一行與第二行所在儲存格:

代碼如下 複製代碼

$excelSheet->mergeCells('A1:A2');

設定儲存格的值,參數:儲存格名稱,值:
$excelSheet->setCellValue('A1', '字串內容');
$excelSheet->setCellValue('A2', 26); //數值
$excelSheet->setCellValue('A3', true); //布爾值
$excelSheet->setCellValue('A4', '=SUM(A2:A2)'); //公式

phpexcel用法介紹

代碼如下 複製代碼

include ‘PHPExcel.php’;

  include ‘PHPExcel/Writer/Excel2007.php’;

  //或者include ‘PHPExcel/Writer/Excel5.php’; 用於輸出.xls的

  建立一個excel

  $objPHPExcel = new PHPExcel();

  儲存excel—2007格式

  $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);

  //或者$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); 非2007格式

  $objWriter->save(”xxx.xlsx”);

  直接輸出到瀏覽器

  $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);

  header(”Pragma: public”);

  header(”Expires: 0″);

  header(”Cache-Control:must-revalidate, post-check=0, pre-check=0″);

  header(”Content-Type:application/force-download”);

  header(”Content-Type:application/vnd.ms-execl”);

  header(”Content-Type:application/octet-stream”);

  header(”Content-Type:application/download”);;

  header(’Content-Disposition:attachment;filename=”resume.xls”‘);

  header(”Content-Transfer-Encoding:binary”);

  $objWriter->save(’php://output’);

  

——————————————————————————————————————–

  設定excel的屬性:

  

代碼如下 複製代碼

建立人

  $objPHPExcel->getProperties()->setCreator(”Maarten Balliauw”);

  最後修改人

  $objPHPExcel->getProperties()->setLastModifiedBy(”Maarten Balliauw”);

  標題

  $objPHPExcel->getProperties()->setTitle(”Office 2007 XLSX Test Document”);

  題目

  $objPHPExcel->getProperties()->setSubject(”Office 2007 XLSX Test Document”);

  描述

  $objPHPExcel->getProperties()->setDescription(”Test document for Office 2007 XLSX, generated using PHP classes.”);

  關鍵字

  $objPHPExcel->getProperties()->setKeywords(”office 2007 openxml php”);

  種類

  $objPHPExcel->getProperties()->setCategory(”Test result file”);

  ——————————————————————————————————————–

  設定當前的sheet

  $objPHPExcel->setActiveSheetIndex(0);

  設定sheet的name

  $objPHPExcel->getActiveSheet()->setTitle(’Simple’);

  設定儲存格的值

  $objPHPExcel->getActiveSheet()->setCellValue(’A1′, ‘String’);

  $objPHPExcel->getActiveSheet()->setCellValue(’A2′, 12);

  $objPHPExcel->getActiveSheet()->setCellValue(’A3′, true);

  $objPHPExcel->getActiveSheet()->setCellValue(’C5′, ‘=SUM(C2:C4)’);

  $objPHPExcel->getActiveSheet()->setCellValue(’B8′, ‘=MIN(B2:C5)’);

  合併儲存格

  $objPHPExcel->getActiveSheet()->mergeCells(’A18:E22′);

  分離儲存格

  $objPHPExcel->getActiveSheet()->unmergeCells(’A28:B28′);


三、PHPEXCEL舉例應用


整個代碼如下(值得注意的是表頭用了$orderCellData記錄了每個商戶編號的順序,為了在表體把對應的資料取出):

代碼如下 複製代碼

<

require_once '../../../libs/PHPExcel/Classes/PHPExcel.php';

require_once '../../../libs/PHPExcel/Classes/PHPExcel/Writer/Excel5.php';

include_once '../../../libs/PHPExcel/Classes/PHPExcel/IOFactory.php';

include '../common/config.php';

// 建立一個處理對象執行個體(此對象對於2003 2007是相同的)

$objExcel = new PHPExcel();

//設定屬性(這段代碼無關緊要,其中的內容可以替換為你需要的)

$objExcel->getProperties()->setCreator("office 2003 excel");

$objExcel->getProperties()->setLastModifiedBy("office 2003 excel");

$objExcel->getProperties()->setTitle("Office 2003 XLS Test Document");

$objExcel->getProperties()->setSubject("Office 2003 XLS Test Document");

$objExcel->getProperties()->setDescription("Test document for Office 2003 XLS, generated using PHP classes.");

$objExcel->getProperties()->setKeywords("office 2003 openxml php");

$objExcel->getProperties()->setCategory("Test result file");

//開始處理資料(索引從0開始)

$objExcel->setActiveSheetIndex(0);

$conn = mssql_connect($config['mssql']['host'],$config['mssql']['user'],$config['mssql']['password']);

mssql_select_db($config['mssql']['dbname'],$conn);

$tm=$_REQUEST['tm'];

$sql = "exec HNow05_getTTSpace '','".$tm."','',1";

$sql=mb_convert_encoding($sql,'GBK','UTF-8');

$res=mssql_query($sql);

$i=0;

$k = array('站碼','站名','河系','來報時間','水位','水勢');

$count = count($k);

$arrs = array('A','B','C','D','E','F');

//添加表頭

for($i=0;$i<$count;$i++){

$objExcel->getActiveSheet()->setCellValue($arrs[$i]."1", "$k[$i]");

}

/*--------從資料庫讀取資料-------*/

$i=0;

while($arr=mssql_fetch_array($res))

{

$stcd = $arr["STCD"];

$stnm = $arr["STNM"];

$rvnm = $arr["RVNM"];

$tm= $arr["TM"];

$tdz= $arr["TDZ"];

$tdptn= $arr["TDPTN"];

if($tdptn=='6'){

$tdptn='平';

}else if($tdptn=='5'){

$tdptn='漲';

}else if($tdptn=='4'){

$tdptn='落';

}

$u1=$i+2;

$stnm=iconv("GBK","utf-8",$stnm);

$rvnm=iconv("GBK","utf-8",$rvnm);

$tm=iconv("GBK","utf-8",$tm);

/*----------寫入內容-------------*/

$objExcel->getActiveSheet()->setCellValue('a'.$u1, "$stcd");

$objExcel->getActiveSheet()->setCellValue('b'.$u1, "$stnm");

$objExcel->getActiveSheet()->setCellValue('c'.$u1, "$rvnm");

$objExcel->getActiveSheet()->setCellValue('d'.$u1, "$tm");

$objExcel->getActiveSheet()->setCellValue('e'.$u1, "$tdz");

$objExcel->getActiveSheet()->setCellValue('f'.$u1, "$tdptn");

$i++;

}

/*----------設定儲存格邊框和顏色-------------*/

$rows = mssql_num_rows($res);

for($i=0;$i<($rows+1);$i++){

for($j=0;$j<$count;$j++){

$a = $i+1;

$objExcel->getActiveSheet()->getStyle($arrs[$j].$a)->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);

$objExcel->getActiveSheet()->getStyle($arrs[$j].$a)->getBorders()->getAllBorders()->getColor()->setARGB('FF00BBcc');

//水平置中

$objExcel->getActiveSheet()->getStyle($arrs[$j].$a)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

}

}

// 高置列的寬度

$objExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10);

$objExcel->getActiveSheet()->getColumnDimension('B')->setWidth(15);

$objExcel->getActiveSheet()->getColumnDimension('C')->setWidth(15);

$objExcel->getActiveSheet()->getColumnDimension('D')->setWidth(20);

$objExcel->getActiveSheet()->getColumnDimension('E')->setWidth(10);

$objExcel->getActiveSheet()->getColumnDimension('F')->setWidth(10);

// 設定頁首和頁尾。如果沒有不同的標題奇數/即使是使用單頭假定.

$objExcel->getActiveSheet()->getHeaderFooter()->setOddHeader('&L&BPersonal cash register&RPrinted on &D');

$objExcel->getActiveSheet()->getHeaderFooter()->setOddFooter('&L&B' . $objExcel->getProperties()->getTitle() . '&RPage &P of &N');

// 設定頁方向和規模

$objExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT);

$objExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);

// 重新命名表

$objExcel->getActiveSheet()->setTitle('即時潮汐情況');

// Set active sheet index to the first sheet, so Excel opens this as the first sheet

$objExcel->setActiveSheetIndex(0);

// Redirect output to a client’s web browser (Excel5)儲存為excel2003格式

//設定Excel的名字

$excelName = '即時潮汐情況('.$tm.')';

//$excelName = 'Excel_'.date("YmdHis");

header('Content-Type: application/vnd.ms-excel');

header('Cache-Control: max-age=0');

header( 'Content-Disposition: attachment; filename='.iconv("utf-8", "GBK", $excelName).'.xls');

$objWriter = PHPExcel_IOFactory::createWriter($objExcel, 'Excel5');

$objWriter->save('php://output');


exit;


?>

http://www.bkjia.com/PHPjc/630735.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/630735.htmlTechArticlePHPEXCEL是一個用來產生excel的php外掛程式,他可以很方便的對excel資料進行操作,如:產生excel,修改excel資料等等。 一、PHPEXCEL簡介 PHPEXCEL提供了一...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.