当前位置:首页 > 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 文件

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 文件:

$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

php实现对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中实现树结构通常可以通过递归或迭代的方式完成。以下是几种常见的实现方法: 递归实现树结构 递归是处理树结构的自然方式,尤其适用于具有未知深度的树。 class Tr…

git php实现

git php实现

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

php 实现购物车

php 实现购物车

PHP 实现购物车功能 购物车功能是电子商务网站的核心部分,可以通过 PHP 和 Session 或数据库来实现。以下是两种常见的实现方式: 使用 Session 存储购物车数据 Sessi…

php实现上传图片

php实现上传图片

上传图片的基本流程 PHP 实现图片上传功能需要处理文件接收、验证、保存等步骤。以下是具体实现方法。 创建 HTML 表单 在 HTML 中创建一个表单,设置 enctype="multipart/…

php实现一个

php实现一个

PHP 实现一个简单的计算器 创建一个基本的计算器,支持加、减、乘、除运算。以下是一个完整的实现代码示例: <?php $result = ""; if ($_SERVER["REQUES…

php实现注册登录

php实现注册登录

PHP 注册功能实现 创建数据库表(以 MySQL 为例) CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, usern…