PHP是目前Web開發(fā)最為常用的語(yǔ)言之一,也是開源的。相較于其他的編程語(yǔ)言,在Web開發(fā)中使用PHP可以流暢地運(yùn)行,并且很容易與MySQL等其他關(guān)系型數(shù)據(jù)庫(kù)相結(jié)合。而在開發(fā)和處理數(shù)據(jù)方面,使用Excel是一個(gè)非常普遍的需求。因此,今天我們要討論關(guān)于PHP Excel導(dǎo)出的問題。
在實(shí)際開發(fā)中,Excel表格的導(dǎo)出是一個(gè)很重要的功能,PHP為我們提供了豐富的API,可以用很少的代碼輕松實(shí)現(xiàn)數(shù)據(jù)的導(dǎo)出。接下來(lái),我們來(lái)看一下如何使用PHP生成Excel表格。
**從MySQL中導(dǎo)出Excel表格**
我們首先需要在MySQL中準(zhǔn)備一些數(shù)據(jù)來(lái)做參考。假設(shè)我們有一張表“users”,包含姓名、電子郵件和地址信息。現(xiàn)在我們要將這些數(shù)據(jù)導(dǎo)出成Excel表格,可以使用以下代碼:
getProperties()->setCreator("Your Name") ->setLastModifiedBy("Your Name") ->setTitle("Title") ->setSubject("Subject") ->setDescription("Description") ->setKeywords("excel php") ->setCategory("Category"); //設(shè)置表格頭 $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', '姓名') ->setCellValue('B1', '電子郵件') ->setCellValue('C1', '地址'); //循環(huán)輸出數(shù)據(jù) $i = 2; while($row=mysqli_fetch_array($result)){ $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A'.$i, $row['name']) ->setCellValue('B'.$i, $row['email']) ->setCellValue('C'.$i, $row['address']); $i++; } //設(shè)置文件名和格式 $filename = "users_list".date("YmdHis").".xls"; //發(fā)送HTTP頭信息,告訴瀏覽器要輸出Excel文件 header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="'.$filename.'"'); header('Cache-Control: max-age=0'); //輸出Excel文件到瀏覽器 $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); //清空緩存 exit; ?>在這里我們使用了PHPExcel這個(gè) PHP 類庫(kù)來(lái)生成 Excel 表格。它是一個(gè)非常流行的 PHP Excel 類庫(kù),可以生成和讀取 Excel 表格并且易于學(xué)習(xí)。在上面的代碼中,我們首先通過 mysqli 連接到 MySQL 數(shù)據(jù)庫(kù)并讀取表格數(shù)據(jù),然后使用 PHPExcel 類庫(kù)創(chuàng)建并設(shè)置 Excel 屬性。接著,我們?cè)O(shè)置表格頭并使用循環(huán)遍歷每行數(shù)據(jù)輸入到 Excel 中。最后,我們使用 HTTP 頭信息告訴瀏覽器這是要輸出 Excel 文件,然后將文件保存到瀏覽器并退出。 **從數(shù)組中導(dǎo)出Excel表格** 如果我們沒有從 MySQL 數(shù)據(jù)庫(kù)讀取數(shù)據(jù),而是將數(shù)據(jù)保存在數(shù)組中,我們可以使用類似的方法來(lái)生成 Excel 表格。以下是一個(gè)例子:
getProperties()->setCreator("Your Name") ->setLastModifiedBy("Your Name") ->setTitle("Title") ->setSubject("Subject") ->setDescription("Description") ->setKeywords("excel php") ->setCategory("Category"); //使用循環(huán)輸出數(shù)組數(shù)據(jù)到表格中 $i = 1; foreach($data as $row){ $objPHPExcel->getActiveSheet()->fromArray($row,NULL,'A'.$i); $i++; } //設(shè)置文件名和格式 $filename = "users_list".date("YmdHis").".xls"; //發(fā)送HTTP頭信息,告訴瀏覽器要輸出Excel文件 header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="'.$filename.'"'); header('Cache-Control: max-age=0'); //輸出Excel文件到瀏覽器 $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); //清空緩存 exit; ?>在上面的代碼中,我們定義了一個(gè)二維數(shù)組并將數(shù)據(jù)循環(huán)輸出到 Excel 表格中。在循環(huán)體中,使用 PHPExcel 類庫(kù)的 fromArray() 方法,將數(shù)組數(shù)據(jù)寫入 Excel 表格中。 **總結(jié)** 以上就是使用 PHP 生成 Excel 文件的方法,對(duì)于大多數(shù)我們?cè)诠ぷ髦行枰牟僮鳎琍HPExcel 類已經(jīng)足夠了。如果一些特殊操作需求,因?yàn)镻HPExcel 本質(zhì)上是一組編程接口,所以同時(shí)開發(fā)了一個(gè)很完整的文檔,支持各項(xiàng)操作。做為PHP開發(fā)者,我們需要熟悉它完成各種Excel文件操作和函數(shù)方法才是。