当前位置:首页 > PHP

php实现excel导出excel

2026-04-03 01:27:14PHP

PHP 实现 Excel 导出

使用 PHPExcel 库(已停止维护,推荐 PhpSpreadsheet)

PHPExcel 是一个流行的库,用于处理 Excel 文件。以下是使用 PHPExcel 导出 Excel 的基本步骤。

安装 PHPExcel(通过 Composer):

composer require phpoffice/phpexcel

导出 Excel 的代码示例:

require_once 'vendor/autoload.php';

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

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

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

// 设置文件头并导出
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="example.xlsx"');
header('Cache-Control: max-age=0');

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

使用 PhpSpreadsheet(PHPExcel 的继任者)

PhpSpreadsheet 是 PHPExcel 的现代替代品,功能更强大且维护活跃。

安装 PhpSpreadsheet:

php实现excel导出excel

composer require phpoffice/phpspreadsheet

导出 Excel 的代码示例:

require 'vendor/autoload.php';

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

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

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

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

// 设置文件头并导出
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="example.xlsx"');
header('Cache-Control: max-age=0');

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

使用 CSV 格式导出

如果不需要复杂的 Excel 功能,可以使用简单的 CSV 格式导出。

导出 CSV 的代码示例:

php实现excel导出excel

header('Content-Type: text/csv');
header('Content-Disposition: attachment;filename="example.csv"');

$data = [
    ['姓名', '年龄', '邮箱'],
    ['张三', 25, 'zhangsan@example.com'],
    ['李四', 30, 'lisi@example.com'],
];

$output = fopen('php://output', 'w');
foreach ($data as $row) {
    fputcsv($output, $row);
}
fclose($output);
exit;

使用 Laravel 框架的 Excel 导出

如果使用 Laravel 框架,可以配合 maatwebsite/excel 包实现导出。

安装 maatwebsite/excel

composer require maatwebsite/excel

创建导出类:

namespace App\Exports;

use Maatwebsite\Excel\Concerns\FromArray;

class UsersExport implements FromArray
{
    public function array(): array
    {
        return [
            ['姓名', '年龄', '邮箱'],
            ['张三', 25, 'zhangsan@example.com'],
            ['李四', 30, 'lisi@example.com']
        ];
    }
}

在控制器中调用:

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

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

注意事项

  • 确保服务器有足够的权限生成和写入文件。
  • 导出前清除所有输出缓冲区,避免文件损坏。
  • 对于大数据量导出,建议分批次处理以避免内存不足。

标签: phpexcel
分享给朋友:

相关文章

php如何实现直播

php如何实现直播

实现直播功能的方法 PHP可以通过结合其他技术和工具来实现直播功能。以下是几种常见的方法: 使用流媒体服务器 配置流媒体服务器如Nginx-RTMP、Red5或Wowza。这些服务器支持RTMP协…

php实现排序

php实现排序

PHP 数组排序方法 PHP 提供了多种内置函数用于数组排序,适用于不同的排序需求。以下是常见的排序方法: 按值升序排序 sort() 函数对数组按值升序排序,重置键名(索引数组适用): $num…

php 实现文件下载

php 实现文件下载

实现文件下载的基本方法 使用 PHP 实现文件下载的核心是通过设置 HTTP 头部信息,强制浏览器将文件作为附件下载而非直接显示。以下是一个基础实现示例: $file_path = '/path/t…

php实现文件的下载

php实现文件的下载

PHP 实现文件下载的方法 在 PHP 中实现文件下载功能通常需要设置正确的 HTTP 头信息,并输出文件内容。以下是几种常见的实现方式: 使用 header() 函数强制下载 通过设置 Conte…

php实现聊天

php实现聊天

实现 PHP 聊天功能的方法 使用 WebSocket 和 PHP 实现实时聊天 WebSocket 是一种全双工通信协议,适合实现实时聊天功能。PHP 可以通过 Ratchet 库实现 WebSo…

php实现即时通讯

php实现即时通讯

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