前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >PHP语言超全超好用Excel表格SDK扩展库

PHP语言超全超好用Excel表格SDK扩展库

作者头像
Tinywan
发布2025-03-12 13:58:46
发布2025-03-12 13:58:46
11400
代码可运行
举报
文章被收录于专栏:开源技术小栈开源技术小栈
运行总次数:0
代码可运行

概述

PhpSpreadsheet是一个用纯PHP编写的库,提供了一组类,使您可以读取和写入不同的电子表格文件格式。PhpSpreadsheet提供了丰富的API接口,可以设置诸多单元格以及文档属性,包括样式、图片、日期、函数等等诸多应用,总之你想要什么样的Excel表格,PhpSpreadsheet都能做到。

官方文档:https://phpspreadsheet.readthedocs.io

支持格式

Format

Reading

Writing

Open Document Format/OASIS (.ods)

Office Open XML (.xlsx) Excel 2007 and above

BIFF 8 (.xls) Excel 97 and above

BIFF 5 (.xls) Excel 95

SpreadsheetML (.xml) Excel 2003

Gnumeric

HTML

SYLK

CSV

PDF (using either the TCPDF, Dompdf or mPDF libraries, which need to be installed separately)

安装

使用 composer 来安装

代码语言:javascript
代码运行次数:0
运行
复制
composer require phpoffice/phpspreadsheet

如果你想要查看对应的文档和示例的话,可以通过下面的命令安装

代码语言:javascript
代码运行次数:0
运行
复制
composer require phpoffice/phpspreadsheet --prefer-source

如果你在一台开发机器上安装,而该机器的 PHP 版本与将要部署的服务器不同,或者你的 PHP CLI 版本与你的运行时间如 php-fpm 或 Apache 的 mod_php 不一样,那么你可能需要在安装前在 composer.json 中加入以下内容:

代码语言:javascript
代码运行次数:0
运行
复制
{
    "require": {
        "phpoffice/phpspreadsheet": "^1.23"
    },
    "config": {
        "platform": {
            "php": "7.4"
        }
    }
}

然后执行 composer install

开始使用

入门示例

代码语言:javascript
代码运行次数:0
运行
复制
<?php
require 'vendor/autoload.php';

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$spreadsheet = new Spreadsheet();
$activeWorksheet = $spreadsheet->getActiveSheet();
$activeWorksheet->setCellValue('A1', 'Hello World !');
$writer = new Xlsx($spreadsheet);
$writer->save('Helloorld.xlsx');

读取Excel文件

以下示例展示了如何读取一个 XLSX 文件并获取其中的数据:

代码语言:javascript
代码运行次数:0
运行
复制
<?php
require'vendor/autoload.php';

usePhpOffice\PhpSpreadsheet\IOFactory;

// 加载 Excel 文件
$inputFileName = 'example.xlsx';
$spreadsheet = IOFactory::load($inputFileName);

// 获取活动工作表
$sheet = $spreadsheet->getActiveSheet();

// 获取最大行数和列数
$highestRow = $sheet->getHighestRow();
$highestColumn = $sheet->getHighestColumn();
$highestColumnIndex = \PhpOffice\PhpSpreadsheet\Cell\Coordinate::columnIndexFromString($highestColumn);

// 遍历所有行和列
for ($row = 1; $row <= $highestRow; ++$row) {
    for ($col = 1; $col <= $highestColumnIndex; ++$col) {
        $cellValue = $sheet->getCellByColumnAndRow($col, $row)->getValue();
        echo $cellValue . "\t";
    }
    echo"\n";
}

创建并写入 Excel 文件

下面的代码展示了如何创建一个新的 Excel 文件,并向其中写入数据,最后保存为 XLSX 文件:

代码语言:javascript
代码运行次数:0
运行
复制
<?php
require'vendor/autoload.php';

usePhpOffice\PhpSpreadsheet\Spreadsheet;
usePhpOffice\PhpSpreadsheet\Writer\Xlsx;

// 创建一个新的 Spreadsheet 对象
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();

// 设置单元格的值
$sheet->setCellValue('A1', '姓名');
$sheet->setCellValue('B1', '年龄');
$sheet->setCellValue('A2', '张三');
$sheet->setCellValue('B2', 25);

// 创建一个 Xlsx 写入器
$writer = new Xlsx($spreadsheet);

// 保存文件
$outputFileName = 'new_example.xlsx';
$writer->save($outputFileName);

echo"文件已保存为: $outputFileName";

样式设置

可以为单元格设置各种样式,如字体、背景颜色、边框等。以下示例展示了如何设置单元格的字体和背景颜色:

代码语言:javascript
代码运行次数:0
运行
复制
<?php
require'vendor/autoload.php';

usePhpOffice\PhpSpreadsheet\Spreadsheet;
usePhpOffice\PhpSpreadsheet\Writer\Xlsx;
usePhpOffice\PhpSpreadsheet\Style\Font;
usePhpOffice\PhpSpreadsheet\Style\Fill;

// 创建一个新的 Spreadsheet 对象
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();

// 设置单元格的值
$sheet->setCellValue('A1', '示例文本');

// 获取单元格样式
$style = $sheet->getStyle('A1');

// 设置字体样式
$font = $style->getFont();
$font->setName('Arial');
$font->setSize(16);
$font->setBold(true);
$font->setColor(new \PhpOffice\PhpSpreadsheet\Style\Color(\PhpOffice\PhpSpreadsheet\Style\Color::COLOR_WHITE));

// 设置背景颜色
$fill = $style->getFill();
$fill->setFillType(Fill::FILL_SOLID);
$fill->getStartColor()->setARGB('FF0000');

// 创建一个 Xlsx 写入器
$writer = new Xlsx($spreadsheet);

// 保存文件
$outputFileName = 'styled_example.xlsx';
$writer->save($outputFileName);

echo"文件已保存为: $outputFileName";
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-03-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源技术小栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • 支持格式
  • 安装
  • 开始使用
    • 入门示例
    • 读取Excel文件
    • 创建并写入 Excel 文件
    • 样式设置
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档