当前位置:首页 > PHP

php实现对excel

2026-01-30 07:30:52PHP

PHP 实现 Excel 操作

PHP 可以通过多种方式实现对 Excel 文件的读取、写入和操作。以下是几种常用的方法:

使用 PhpSpreadsheet 库

PhpSpreadsheet 是一个流行的 PHP 库,用于处理 Excel 文件(支持 .xlsx、.xls、.csv 等格式)。安装方法如下:

composer require phpoffice/phpspreadsheet

读取 Excel 文件

require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\IOFactory;

$spreadsheet = IOFactory::load("example.xlsx");
$sheet = $spreadsheet->getActiveSheet();
foreach ($sheet->getRowIterator() as $row) {
    foreach ($row->getCellIterator() as $cell) {
        echo $cell->getValue() . "\t";
    }
    echo "\n";
}

写入 Excel 文件

php实现对excel

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

$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Hello World !');

$writer = new Xlsx($spreadsheet);
$writer->save('hello_world.xlsx');

使用 PHPExcel(旧版)

PHPExcel 是 PhpSpreadsheet 的前身,目前已停止维护,但部分旧项目可能仍在使用。

require 'PHPExcel.php';
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A1', 'Hello')
            ->setCellValue('B1', 'World');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('example.xlsx');

使用原生 PHP 导出 CSV

对于简单的数据导出,可以直接生成 CSV 文件:

php实现对excel

$data = [
    ['Name', 'Email'],
    ['John Doe', 'john@example.com'],
    ['Jane Doe', 'jane@example.com']
];

$fp = fopen('export.csv', 'w');
foreach ($data as $row) {
    fputcsv($fp, $row);
}
fclose($fp);

使用 Box/Spout 库

Box/Spout 是一个高性能的 Excel 和 CSV 读写库,适合处理大型文件。

composer require box/spout

读取 Excel

use Box\Spout\Reader\Common\Creator\ReaderEntityFactory;

$reader = ReaderEntityFactory::createXLSXReader();
$reader->open('example.xlsx');

foreach ($reader->getSheetIterator() as $sheet) {
    foreach ($sheet->getRowIterator() as $row) {
        print_r($row->toArray());
    }
}
$reader->close();

写入 Excel

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

$writer = WriterEntityFactory::createXLSXWriter();
$writer->openToFile('output.xlsx');

$row = WriterEntityFactory::createRowFromArray(['Name', 'Age']);
$writer->addRow($row);
$writer->close();

注意事项

  • 处理大型 Excel 文件时,建议使用流式读取(如 Box/Spout)以避免内存问题。
  • Excel 文件的格式(.xlsx、.xls、.csv)需要与库的支持能力匹配。
  • 导出数据时注意字符编码问题,避免中文乱码。

标签: phpexcel
分享给朋友:

相关文章

php实现栈

php实现栈

栈的基本概念 栈(Stack)是一种遵循后进先出(LIFO)原则的数据结构。核心操作包括: push:元素入栈。 pop:元素出栈(返回并移除栈顶元素)。 peek:查看栈顶元素…

php 实现验证码

php 实现验证码

使用 PHP 生成验证码 验证码(CAPTCHA)用于防止自动化脚本提交表单,以下是几种常见的 PHP 实现方法。 使用 GD 库生成图片验证码 GD 库是 PHP 的图像处理扩展,可用于生成验证码…

基于php的设计与实现

基于php的设计与实现

PHP 设计与实现的关键要素 环境搭建与框架选择 PHP开发需配置服务器环境(如Apache/Nginx)、PHP版本(建议7.4+)及数据库(MySQL/MariaDB)。主流框架包括Laravel…

php实现分类

php实现分类

PHP实现分类的方法 数据库设计 创建分类表时,通常需要包含id、名称、父级id等字段。父级id用于实现多级分类结构。 CREATE TABLE categories ( id INT AU…

php 函数实现

php 函数实现

PHP 函数实现基础 PHP 函数的定义使用 function 关键字,后跟函数名和参数列表。函数名不区分大小写,但建议保持一致。 function functionName($param1, $p…

php实现伪静态

php实现伪静态

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