当前位置:首页 > PHP

php 实现excel 导出

2026-02-15 07:01:38PHP

使用 PHPExcel 库实现 Excel 导出

PHPExcel 是一个流行的 PHP 库,用于处理 Excel 文件(包括导出)。以下是具体实现方法:

安装 PHPExcel(通过 Composer):

composer require phpoffice/phpexcel

基础导出代码示例:

require_once 'vendor/autoload.php';
use PHPExcel;
use PHPExcel_IOFactory;

$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
$sheet = $objPHPExcel->getActiveSheet();

// 设置表头
$sheet->setCellValue('A1', '姓名');
$sheet->setCellValue('B1', '年龄');

// 填充数据
$data = [
    ['张三', 25],
    ['李四', 30]
];
$row = 2;
foreach ($data as $item) {
    $sheet->setCellValue('A'.$row, $item[0]);
    $sheet->setCellValue('B'.$row, $item[1]);
    $row++;
}

// 设置文件名和格式
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="export.xlsx"');
header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
exit;

使用 PhpSpreadsheet 实现 Excel 导出

PhpSpreadsheet 是 PHPExcel 的继承者,推荐在新项目中使用。

安装 PhpSpreadsheet:

composer require phpoffice/phpspreadsheet

基础导出代码:

require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();

// 设置数据
$sheet->setCellValue('A1', 'Hello World !');

// 输出
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="simple.xlsx"');
header('Cache-Control: max-age=0');

$writer = new Xlsx($spreadsheet);
$writer->save('php://output');

使用 Laravel Excel 包(适用于 Laravel 框架)

安装 Laravel Excel:

composer require maatwebsite/excel

创建导出类:

namespace App\Exports;
use Maatwebsite\Excel\Concerns\FromCollection;

class UsersExport implements FromCollection
{
    public function collection()
    {
        return User::all();
    }
}

在控制器中使用:

use App\Exports\UsersExport;
use Maatwebsite\Excel\Facades\Excel;

public function export() 
{
    return Excel::download(new UsersExport, 'users.xlsx');
}

性能优化建议

大数据量导出时考虑分块处理:

// 在 Laravel Excel 中
public function chunkSize(): int
{
    return 1000;
}

设置内存限制:

ini_set('memory_limit', '512M');

常见格式设置

设置列宽:

$sheet->getColumnDimension('A')->setWidth(20);

设置单元格样式:

$styleArray = [
    'font' => [
        'bold' => true,
        'color' => ['rgb' => 'FF0000']
    ],
    'alignment' => [
        'horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER,
    ]
];
$sheet->getStyle('A1:B1')->applyFromArray($styleArray);

合并单元格:

$sheet->mergeCells('A1:B1');

php 实现excel 导出

标签: phpexcel
分享给朋友:

相关文章

git php实现

git php实现

Git 与 PHP 的集成实现 使用 PHP 执行 Git 命令 通过 PHP 的 exec()、shell_exec() 或 passthru() 函数可以直接调用 Git 命令,适用于服务器端操作…

php实现队列

php实现队列

PHP实现队列的方法 队列是一种先进先出(FIFO)的数据结构,PHP可以通过多种方式实现队列功能。 使用数组模拟队列 PHP数组可以模拟队列的基本操作,通过array_push和array_shi…

php实现mysql

php实现mysql

PHP 连接 MySQL 的基本方法 PHP 提供了多种方式与 MySQL 数据库进行交互,以下是最常用的几种方法。 使用 MySQLi 扩展 MySQLi 是 MySQL 的改进扩展,支持面向对…

php实现接口

php实现接口

PHP 实现接口的方法 在 PHP 中,接口(Interface)用于定义一组方法的规范,而不实现具体功能。类可以实现一个或多个接口,并必须实现接口中定义的所有方法。 定义接口 接口使用 inter…

php实现即时通讯

php实现即时通讯

PHP 实现即时通讯的方案 即时通讯(IM)可以通过多种方式实现,PHP 作为服务器端语言,通常需要结合前端技术(如 WebSocket、AJAX)或第三方服务来实现实时通信。以下是几种常见的实现方式…

php搜索功能实现的

php搜索功能实现的

PHP 搜索功能实现方法 数据库搜索实现 使用 SQL 的 LIKE 语句进行模糊匹配,适用于小型网站和简单搜索需求。 $searchTerm = $_GET['search']; $query =…