当前位置:首页 > PHP

php实现excel导出excel

2026-02-13 17:56:00PHP

PHP 实现 Excel 导出

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

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', '年龄');

// 填充数据
$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="example.xlsx"');
header('Cache-Control: max-age=0');

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

使用 PhpSpreadsheet(推荐)

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', '年龄');

// 填充数据
$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="example.xlsx"');
header('Cache-Control: max-age=0');

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

使用 CSV 格式导出

如果需要简单快速的导出,可以使用 CSV 格式。

示例代码:

php实现excel导出excel

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

$data = [
    ['姓名', '年龄'],
    ['张三', 25],
    ['李四', 30]
];

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

使用第三方库(如 Box/Spout)

Box/Spout 是一个高性能的库,特别适合处理大型 Excel 文件。

安装 Box/Spout:

composer require box/spout

导出 Excel 的示例代码:

require 'vendor/autoload.php';

use Box\Spout\Writer\Common\Creator\WriterEntityFactory;

$writer = WriterEntityFactory::createXLSXWriter();
$writer->openToBrowser('example.xlsx');

// 设置表头
$header = WriterEntityFactory::createRowFromArray(['姓名', '年龄']);
$writer->addRow($header);

// 填充数据
$data = [
    ['张三', 25],
    ['李四', 30]
];

foreach ($data as $rowData) {
    $row = WriterEntityFactory::createRowFromArray($rowData);
    $writer->addRow($row);
}

$writer->close();

注意事项

  • 确保服务器已安装必要的 PHP 扩展(如 zipxml)。
  • 导出大量数据时,建议使用流式处理以避免内存问题。
  • 设置正确的 HTTP 头以确保浏览器正确处理文件下载。

以上方法涵盖了从简单到复杂的 Excel 导出需求,可以根据项目需求选择合适的方案。

标签: phpexcel
分享给朋友:

相关文章

php实现验证码

php实现验证码

PHP实现验证码的方法 使用GD库生成验证码 GD库是PHP中处理图像的扩展,可用于生成验证码图片。 <?php session_start(); $width = 120; $height…

php验证码实现

php验证码实现

验证码实现方法 在PHP中实现验证码功能通常涉及生成随机字符串或数字,将其转换为图像,并通过会话(Session)进行验证。以下是几种常见的实现方式: 使用GD库生成图像验证码 GD库是PHP内置的…

php实现伪静态

php实现伪静态

PHP 实现伪静态的方法 伪静态(URL Rewrite)是一种将动态URL转换为看似静态URL的技术,提升SEO友好性和用户体验。以下是几种常见的实现方式: 使用 Apache 的 mod_rew…

php变量的实现

php变量的实现

PHP变量的实现机制 PHP变量的实现基于Zend引擎的底层数据结构。核心结构体zval用于存储变量类型和值,其设计允许动态类型转换和高效内存管理。 zval结构体 PHP变量通过zval结构体实现…

php搜索功能的实现

php搜索功能的实现

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

php无法实现

php无法实现

PHP 是一种功能强大的服务器端脚本语言,能够实现多种功能,包括动态网页开发、数据库交互、文件操作等。如果遇到“无法实现”的问题,通常是由于以下原因之一: 环境配置问题 确保 PHP 环境正确安装和…