当前位置:首页 > 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实现打印功能

PHP 实现打印功能的方法 PHP 可以通过多种方式实现打印功能,具体取决于打印的目标(如打印机、PDF、网页等)和需求(如直接打印、生成打印预览等)。以下是几种常见的实现方式: 使用 JavaSc…

php实现文件上传

php实现文件上传

PHP 文件上传实现方法 在 PHP 中实现文件上传需要处理 HTML 表单和服务器端脚本。以下是详细步骤: 创建 HTML 表单 使用 enctype="multipart/form-data"…

php实现搜索功能

php实现搜索功能

实现基本的搜索功能 在PHP中实现搜索功能通常涉及数据库查询。以下是一个简单的实现方式,假设使用MySQL数据库: <?php // 连接数据库 $conn = new mysqli('lo…

php实现验证码

php实现验证码

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

php实现图片上传

php实现图片上传

实现图片上传的基本步骤 创建HTML表单用于文件上传,表单需设置enctype="multipart/form-data"属性,确保文件数据正确传输。 <form action="upload…

php实现websocket

php实现websocket

PHP 实现 WebSocket WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。PHP 可以通过多种方式实现 WebSocket 功能,以下是几种常见的方法: 使用 Rat…