当前位置:首页 > 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 取代,但一些旧系统可能仍在使用。安装方法:

php实现对excel

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 文件时使用分块读取:

php实现对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');

添加公式:

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

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

标签: phpexcel
分享给朋友:

相关文章

php实现打印功能

php实现打印功能

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

php实现登录

php实现登录

PHP 登录功能实现 数据库连接与用户表创建 创建一个数据库连接文件 db.php,用于管理数据库连接。MySQL 示例代码如下: <?php $host = 'localhost'; $db…

php 实现接口

php 实现接口

PHP 实现接口的方法 在 PHP 中,接口(Interface)用于定义一组方法的规范,而不包含具体的实现。类可以实现(implement)接口,并必须实现接口中定义的所有方法。 定义接口 接口通…

php 伪静态实现

php 伪静态实现

PHP 伪静态实现方法 伪静态(URL Rewrite)是一种通过服务器配置将动态URL转换为静态URL的技术,提升URL的可读性和SEO效果。以下是几种常见的实现方式: 使用Apache的mod_…

php实现进度条

php实现进度条

PHP 实现进度条的方法 使用 HTML 和 CSS 结合 PHP 实现进度条 在 PHP 中,进度条通常通过 HTML 和 CSS 实现,PHP 负责计算进度并更新前端显示。 <div st…

php实现验证码的识别

php实现验证码的识别

验证码识别的基本方法 验证码识别通常分为手动实现和第三方工具两种方式。手动实现需要图像处理和机器学习知识,而第三方工具则更快捷。 使用Tesseract OCR识别验证码 Tesseract是一个开…