PHPExcel是一款開源的PHP函式庫,用於處理Microsoft Excel(.xls和.xlsx)檔案。它可以讀取、寫入和操作Excel文件,提供了豐富的函數和方法。
在PHP專案中使用PHPExcel函式庫,可以快速方便地處理Excel文件,實現資料的匯入、匯出和資料處理等功能。本文將介紹如何使用PHPExcel處理Excel檔案。
一、安裝PHPExcel
要使用PHPExcel,要先下載並安裝此程式庫。可從官方網站(https://github.com/PHPOffice/PHPExcel)下載PHPExcel的最新版本。解壓縮壓縮包後,將PHPExcel資料夾放置到專案中,然後在PHP檔案中引入PHPExcel的自動載入檔案:
require_once 'PHPExcel/Classes/PHPExcel.php';
二、建立Excel檔案
使用PHPExcel可以快速建立Excel文件並寫入資料。以下是建立一個包含三行三列的Excel文檔,並寫入資料的範例程式碼:
$excel = new PHPExcel(); $excel->setActiveSheetIndex(0); $excel->getActiveSheet()->setCellValue('A1', '姓名') ->setCellValue('B1', '年龄') ->setCellValue('C1', '邮箱'); $excel->getActiveSheet()->setCellValue('A2', '张三') ->setCellValue('B2', 20) ->setCellValue('C2', 'zhangsan@example.com'); $excel->getActiveSheet()->setCellValue('A3', '李四') ->setCellValue('B3', 25) ->setCellValue('C3', 'lisi@example.com'); $excel->getActiveSheet()->setCellValue('A4', '王五') ->setCellValue('B4', 30) ->setCellValue('C4', 'wangwu@example.com'); header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="example.xls"'); header('Cache-Control: max-age=0'); $writer = PHPExcel_IOFactory::createWriter($excel, 'Excel5'); $writer->save('php://output');
在這段程式碼中,首先建立了一個名為$excel的PHPExcel對象,然後將其默認的工作表設定為第一個工作表(索引為0)。接著透過setCellValue()方法將資料寫入Excel工作表中。
最後設定要輸出Excel檔案的檔案類型、檔案名稱、快取控制等屬性,並建立一個PHPExcel_IOFactory的實例物件$writer,將Excel物件$excel寫入輸出。
三、讀取Excel檔案
使用PHPExcel可以輕鬆讀取Excel檔案中的資料。以下是讀取Excel檔案的範例程式碼:
$objReader = PHPExcel_IOFactory::createReader('Excel5'); $objReader->setReadDataOnly(true); $objPHPExcel = $objReader->load("example.xls"); $worksheet = $objPHPExcel->getActiveSheet(); foreach ($worksheet->getRowIterator() as $row) { $cellIterator = $row->getCellIterator(); $cellIterator->setIterateOnlyExistingCells(false); $columns = []; foreach ($cellIterator as $cell) { $columns[] = $cell->getValue(); } if (count($columns) > 0) { echo implode('|', $columns) . " "; } }
在這段程式碼中,首先使用PHPExcel_IOFactory類別的createReader()方法建立一個Excel讀取器物件$objReader,然後使用load()方法將Excel檔案example.xls載入到記憶體中,最後取得Excel檔案中的第一個工作表。
接著遍歷每一行和每一列的儲存格,使用getValue()方法取得每個儲存格中的值,並將每一行的所有資料拼接成一個字串。
最後輸出每一行的資料。
四、匯出Excel檔案
使用PHPExcel可以將資料匯出到Excel檔案。以下是將MySQL資料庫中的資料匯出到Excel檔案的範例程式碼:
$pdo = new PDO('mysql:host=localhost;dbname=mydatabase', 'username', 'password'); $sql = "SELECT name, age, email FROM users"; $stmt = $pdo->query($sql); $excel = new PHPExcel(); $excel->setActiveSheetIndex(0); $excel->getActiveSheet()->setCellValue('A1', '姓名') ->setCellValue('B1', '年龄') ->setCellValue('C1', '邮箱'); $i = 2; while ($row = $stmt->fetch()) { $excel->getActiveSheet()->setCellValue('A' . $i, $row['name']) ->setCellValue('B' . $i, $row['age']) ->setCellValue('C' . $i, $row['email']); $i++; } header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="users.xls"'); header('Cache-Control: max-age=0'); $writer = PHPExcel_IOFactory::createWriter($excel, 'Excel5'); $writer->save('php://output');
在這段程式碼中,先透過PDO物件連接到MySQL資料庫,並查詢users表中的資料。然後建立一個名為$excel的PHPExcel對象,依序將每行的資料寫入Excel對像中。
最後設定要輸出Excel檔案的檔案類型、檔案名稱、快取控制等屬性,並建立一個PHPExcel_IOFactory的實例物件$writer,將Excel物件$excel寫入輸出。
五、結論
透過本文的介紹,讀者應該了解如何使用PHPExcel處理Excel檔案。使用PHPExcel可以方便地讀取、寫入和操作Excel文件,同時可以將其他資料來源(如MySQL資料庫)中的資料匯出到Excel檔案中。
雖然PHPExcel已經停止維護,但作為一個成熟、穩定的Excel處理庫,仍然可以在許多PHP專案中使用,並提供了豐富的範例程式碼和文件資料供參考。
以上是php如何使用PHPExcel處理Excel檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!