当前位置:首页 > 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中实现文件上传需要使用$_FILES超全局数组处理上传的文件数据。表单必须设置enctype="multipart/form-data"属性,并采用POST方法提交。 创…

php实现搜索功能

php实现搜索功能

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

php实现验证码

php实现验证码

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

php实现树

php实现树

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

php实现递归

php实现递归

递归的基本概念 递归是一种函数调用自身的技术,适用于解决可以分解为相同子问题的问题。在PHP中,递归需要明确的终止条件(基线条件),否则会导致无限循环。 递归实现阶乘 阶乘是经典的递归案例,n! =…

php实现图片上传

php实现图片上传

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