Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menggunakan PHPExcel untuk memproses fail Excel?

Bagaimana untuk menggunakan PHPExcel untuk memproses fail Excel?

WBOY
WBOYasal
2023-06-01 14:01:383448semak imbas

PHPExcel ialah perpustakaan PHP sumber terbuka untuk memproses fail Microsoft Excel (.xls dan .xlsx). Ia boleh membaca, menulis dan mengendalikan fail Excel, dan menyediakan pelbagai fungsi dan kaedah.

Menggunakan perpustakaan PHPExcel dalam projek PHP, anda boleh memproses fail Excel dengan cepat dan mudah serta melaksanakan fungsi seperti import data, eksport dan pemprosesan data. Artikel ini akan memperkenalkan cara menggunakan PHPExcel untuk memproses fail Excel.

1. Pasang PHPExcel

Untuk menggunakan PHPExcel, anda perlu memuat turun dan memasang perpustakaan terlebih dahulu. Versi terkini PHPExcel boleh dimuat turun dari laman web rasmi (https://github.com/PHPOffice/PHPExcel). Selepas menyahmampat pakej termampat, letakkan folder PHPExcel ke dalam projek, dan kemudian perkenalkan fail pemuatan automatik PHPExcel ke dalam fail PHP:

require_once 'PHPExcel/Classes/PHPExcel.php';

2. Cipta fail Excel

Gunakan PHPExcel untuk mencipta Excel dengan cepat fail dan tulis data. Berikut ialah contoh kod untuk mencipta dokumen Excel yang mengandungi tiga baris dan tiga lajur dan menulis data:

$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');

Dalam kod ini, objek PHPExcel bernama $excel mula-mula dibuat dan kemudian lalai kepada Lembaran kerja ditetapkan kepada lembaran kerja pertama (indeks 0). Kemudian tulis data pada lembaran kerja Excel melalui kaedah setCellValue().

Akhirnya tetapkan jenis fail, nama fail, kawalan cache dan atribut lain fail Excel untuk dijadikan output dan cipta objek contoh $writer PHPExcel_IOFactory untuk menulis objek Excel $excel pada output.

3. Baca fail Excel

Gunakan PHPExcel untuk membaca data dalam fail Excel dengan mudah. Berikut ialah contoh kod untuk membaca fail 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) . "
";
    }
}

Dalam kod ini, mula-mula gunakan kaedah createReader() kelas PHPExcel_IOFactory untuk mencipta objek pembaca Excel $objReader, dan kemudian gunakan load() kaedah untuk memuatkan Excel Contoh fail.xls dimuatkan ke dalam memori dan akhirnya lembaran kerja pertama dalam fail Excel diperolehi.

Kemudian lelaran melalui sel dalam setiap baris dan lajur, gunakan kaedah getValue() untuk mendapatkan nilai dalam setiap sel dan gabungkan semua data dalam setiap baris menjadi rentetan.

Akhir sekali mengeluarkan data setiap baris.

4. Eksport fail Excel

Gunakan PHPExcel untuk mengeksport data ke fail Excel. Berikut ialah contoh kod untuk mengeksport data daripada pangkalan data MySQL ke fail 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');

Dalam kod ini, mula-mula sambung ke pangkalan data MySQL melalui objek PDO dan tanya data dalam jadual pengguna. Kemudian buat objek PHPExcel bernama $excel dan tulis data setiap baris ke dalam objek Excel secara bergilir-gilir.

Akhirnya tetapkan jenis fail, nama fail, kawalan cache dan atribut lain fail Excel untuk dijadikan output dan cipta objek contoh $writer PHPExcel_IOFactory untuk menulis objek Excel $excel pada output.

5. Kesimpulan

Melalui pengenalan artikel ini, pembaca harus memahami cara menggunakan PHPExcel untuk memproses fail Excel. Menggunakan PHPExcel, anda boleh membaca, menulis dan mengendalikan fail Excel dengan mudah, dan pada masa yang sama, anda boleh mengeksport data daripada sumber data lain (seperti pangkalan data MySQL) ke fail Excel.

Walaupun PHPExcel telah menghentikan penyelenggaraan, sebagai perpustakaan pemprosesan Excel yang matang dan stabil, ia masih boleh digunakan dalam banyak projek PHP dan menyediakan kod sampel yang kaya dan dokumentasi untuk rujukan.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan PHPExcel untuk memproses fail Excel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn