首頁  >  文章  >  後端開發  >  php如何使用PHPExcel處理Excel檔案?

php如何使用PHPExcel處理Excel檔案?

WBOY
WBOY原創
2023-06-01 14:01:383432瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn