当前位置:首页 > PHP

PHP实现excel

2026-01-29 11:05:23PHP

PHP 实现 Excel 操作

读取 Excel 文件

使用 PHP 读取 Excel 文件可以通过 PhpSpreadsheet 库实现。安装该库可以通过 Composer:

composer require phpoffice/phpspreadsheet

读取 Excel 文件的基本代码示例:

PHP实现excel

require 'vendor/autoload.php';

use PhpOffice\PhpSpreadsheet\IOFactory;

$inputFileName = 'example.xlsx';
$spreadsheet = IOFactory::load($inputFileName);
$sheet = $spreadsheet->getActiveSheet();

foreach ($sheet->getRowIterator() as $row) {
    $cellIterator = $row->getCellIterator();
    $cellIterator->setIterateOnlyExistingCells(false);

    foreach ($cellIterator as $cell) {
        echo $cell->getValue() . "\t";
    }
    echo "\n";
}

写入 Excel 文件

使用 PhpSpreadsheet 创建和写入 Excel 文件的示例:

require 'vendor/autoload.php';

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

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

$sheet->setCellValue('A1', 'Hello');
$sheet->setCellValue('B1', 'World');

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

导出 Excel 文件

将数据导出为 Excel 文件并直接下载:

PHP实现excel

require 'vendor/autoload.php';

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

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

$sheet->setCellValue('A1', 'Name');
$sheet->setCellValue('B1', 'Email');

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="export.xlsx"');
header('Cache-Control: max-age=0');

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

处理 CSV 文件

如果需要处理 CSV 文件,可以使用 PHP 内置函数:

// 读取 CSV
if (($handle = fopen("input.csv", "r")) !== false) {
    while (($data = fgetcsv($handle, 1000, ",")) !== false) {
        print_r($data);
    }
    fclose($handle);
}

// 写入 CSV
$list = [['Name', 'Email'], ['John', 'john@example.com']];
$fp = fopen('output.csv', 'w');
foreach ($list as $fields) {
    fputcsv($fp, $fields);
}
fclose($fp);

使用其他库

除了 PhpSpreadsheet,还可以使用 PHPExcel(已弃用)或 SimpleExcel 等库。PhpSpreadsheet 是目前最推荐的解决方案。

注意事项

  • 确保服务器有足够的权限读写文件。
  • 处理大文件时,注意内存使用情况,可以分块读取或使用流式处理。
  • 导出文件时,确保设置正确的 HTTP 头以避免文件损坏。

以上方法涵盖了 PHP 中操作 Excel 文件的常见需求,包括读取、写入和导出。

标签: PHPexcel
分享给朋友:

相关文章

单例模式的实现PHP

单例模式的实现PHP

单例模式的基本概念 单例模式是一种创建型设计模式,确保一个类只有一个实例,并提供全局访问点。适用于需要全局唯一对象的场景,如数据库连接、日志管理等。 PHP 单例模式的实现步骤 私有化构造函数…

react实现excel的导出

react实现excel的导出

使用 xlsx 库实现 Excel 导出 安装 xlsx 库: npm install xlsx 创建一个工作簿并导出为 Excel 文件: import * as XLSX from 'xlsx…

PHP实现HTML

PHP实现HTML

PHP实现HTML的方式 PHP作为服务器端脚本语言,可以直接嵌入HTML代码中生成动态网页内容。以下是几种常见实现方式: 混合编写 直接在.php文件中混合PHP与HTML代码: <…

PHP签到实现

PHP签到实现

PHP签到功能实现 PHP实现签到功能需要结合数据库存储用户签到记录,并提供前端交互界面。以下是一个完整的实现方案: 数据库设计 创建用户表users和签到记录表sign_records:…

PHP轮询实现

PHP轮询实现

轮询的基本概念 轮询是一种客户端定期向服务器发送请求以获取最新数据的技术。适用于需要实时更新但无法使用WebSocket或Server-Sent Events (SSE)的场景。 简单轮询实现 通过…