PHP是目前非常流行的服務(wù)器端編程語(yǔ)言,它有非常豐富的擴(kuò)展包可以供使用。其中一款傳統(tǒng)的擴(kuò)展包是PHPExcel,它可以讓開(kāi)發(fā)者使用PHP代碼生成Excel文檔。然而在過(guò)去幾年間,PHPExcel擴(kuò)展包并沒(méi)有得到很好的維護(hù)。這時(shí)候,一個(gè)全新的擴(kuò)展包PHP Excel誕生了。
PHP Excel是PHPExcel的改進(jìn)版,其目的是解決PHPExcel在大數(shù)據(jù)量下的性能問(wèn)題,并且結(jié)構(gòu)更加清晰,更加易于使用。下面我們來(lái)看看PHP Excel的使用方法。
//引入PHP Excel擴(kuò)展包 require_once dirname(__FILE__) . '/PHPExcel/Classes/PHPExcel.php'; //創(chuàng)建Excel對(duì)象 $objPHPExcel = new PHPExcel(); //設(shè)置Excel文檔屬性 $objPHPExcel->getProperties()->setCreator("Author Name") ->setLastModifiedBy("Last Modified By Name") ->setTitle("Title") ->setSubject("Subject") ->setDescription("Description") ->setKeywords("Keywords") ->setCategory("Category"); //定義Excel表頭 $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', '姓名') ->setCellValue('B1', '年齡') ->setCellValue('C1', '地址'); //從數(shù)據(jù)庫(kù)中讀取數(shù)據(jù)并填充表格 $i = 2; foreach($result as $item) { $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A'.$i, $item['name']) ->setCellValue('B'.$i, $item['age']) ->setCellValue('C'.$i, $item['address']); $i++; } //設(shè)置表格樣式 $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(10); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(20); //生成Excel文件 $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save('filename.xlsx');
以上代碼可以生成一個(gè)基本的Excel文件。首先我們需要?jiǎng)?chuàng)建一個(gè)PHPExcel對(duì)象,然后設(shè)置Excel文檔的屬性,這里包括創(chuàng)建者、最后修改者、文件標(biāo)題、主題、描述、關(guān)鍵字和分類。
接下來(lái)定義Excel表頭,這里我們使用setCellValue()方法為每個(gè)單元格設(shè)置值。
從數(shù)據(jù)庫(kù)中讀取數(shù)據(jù)并填充表格,這里我們使用foreach循環(huán)從數(shù)據(jù)庫(kù)中獲取數(shù)據(jù),并使用PHPExcel的setCellValue()方法將數(shù)據(jù)填入Excel單元格中。
最后設(shè)置表格樣式,這里我們使用getColumnDimension()方法設(shè)置單元格的寬度,然后使用PHPExcel_IOFactory類來(lái)創(chuàng)建和保存文件。
以上是生成Excel文件的基本方法,PHP Excel還提供了豐富的API方法,可以通過(guò)設(shè)置單元格樣式、添加圖片、設(shè)置公式、創(chuàng)建多個(gè)工作表等來(lái)實(shí)現(xiàn)更加復(fù)雜的操作。
總之,PHP Excel是一個(gè)非常強(qiáng)大的Excel操作工具,它能夠?yàn)殚_(kāi)發(fā)者帶來(lái)非常大的便利。如果你需要在項(xiàng)目中生成Excel文件,不妨考慮使用PHP Excel!