当前位置:首页 > PHP

php实现对excel

2026-02-15 05:20:25PHP

PHP 操作 Excel 的方法

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

使用 PhpSpreadsheet 库

PhpSpreadsheet 是 PHPExcel 的继任者,功能强大且维护良好。安装方法:

composer require phpoffice/phpspreadsheet

读取 Excel 文件示例代码:

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

$spreadsheet = IOFactory::load("example.xlsx");
$worksheet = $spreadsheet->getActiveSheet();
$cellValue = $worksheet->getCell('A1')->getValue();

写入 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');

使用 PHP_XLSXWriter 库

XLSXWriter 是一个轻量级的库,适合生成 Excel 文件。安装方法:

composer require mk-j/php_xlsxwriter

生成 Excel 示例代码:

require_once 'xlsxwriter.class.php';
$writer = new XLSXWriter();
$writer->writeSheetRow('Sheet1', ['Name','Age']);
$writer->writeSheetRow('Sheet1', ['John',25]);
$writer->writeToFile('output.xlsx');

使用 PHPExcel(已弃用)

虽然 PHPExcel 已被 PhpSpreadsheet 取代,但一些旧系统可能仍在使用。安装方法:

composer require phpoffice/phpexcel

读取示例代码:

require_once 'PHPExcel/IOFactory.php';
$objPHPExcel = PHPExcel_IOFactory::load("example.xls");
$sheetData = $objPHPExcel->getActiveSheet()->toArray();

使用 CSV 作为中间格式

对于简单的数据交换,可以先将 Excel 转换为 CSV 处理:

$csvFile = fopen('data.csv', 'w');
fputcsv($csvFile, ['Header1', 'Header2']);
fputcsv($csvFile, ['Value1', 'Value2']);
fclose($csvFile);

使用 COM 对象(仅限 Windows)

在 Windows 服务器上可以通过 COM 对象直接操作 Excel:

$excel = new COM("Excel.Application") or die("无法启动 Excel");
$workbook = $excel->Workbooks->Open("C:\\path\\to\\file.xlsx");
$worksheet = $workbook->Worksheets(1);
$value = $worksheet->Range("A1")->Value;
$excel->Quit();

性能优化建议

处理大型 Excel 文件时使用分块读取:

$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
$reader->setReadDataOnly(true);
$chunkFilter = new ChunkReadFilter();
$reader->setReadFilter($chunkFilter);
$spreadsheet = $reader->load("large_file.xlsx");

导出时考虑内存限制:

$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xlsx');
$writer->setPreCalculateFormulas(false);
$writer->save('output.xlsx');

常见格式处理

设置单元格格式:

$spreadsheet->getActiveSheet()->getStyle('A1')
    ->getFont()->setBold(true)
    ->setSize(12)
    ->setName('Arial');

合并单元格:

$spreadsheet->getActiveSheet()->mergeCells('A1:B1');

添加公式:

php实现对excel

$spreadsheet->getActiveSheet()->setCellValue('C1', '=SUM(A1:B1)');

这些方法覆盖了 PHP 操作 Excel 的主要需求,从简单的读写到复杂格式处理。根据项目需求选择合适的库和方法。

标签: phpexcel
分享给朋友:

相关文章

php实现队列

php实现队列

PHP实现队列的方法 队列是一种先进先出(FIFO)的数据结构,PHP可以通过多种方式实现队列功能。 使用数组模拟队列 PHP数组可以模拟队列的基本操作,通过array_push和array_shi…

php 路由实现

php 路由实现

PHP 路由实现方法 在 PHP 中实现路由功能有多种方式,以下是几种常见的实现方法: 使用原生 PHP 实现 通过解析 URL 并匹配对应的控制器和动作: $request = $_SERVER…

php 实现登录

php 实现登录

PHP 登录功能实现 使用 PHP 实现登录功能通常需要结合数据库验证和会话管理。以下是一个基本的登录实现流程: 数据库准备 创建用户表存储用户名和密码(建议使用哈希加密): CREATE TAB…

php 实现购物车

php 实现购物车

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

php实现mysql

php实现mysql

PHP 连接 MySQL 的基本方法 PHP 提供了多种方式与 MySQL 数据库进行交互,以下是最常用的几种方法。 使用 MySQLi 扩展 MySQLi 是 MySQL 的改进扩展,支持面向对…

php 实现排序

php 实现排序

PHP 实现数组排序的方法 PHP 提供了多种内置函数和方法来实现数组排序,适用于不同的排序需求。以下是一些常见的排序实现方式: 使用 sort() 函数对数组进行升序排序 sort() 函数对数组…