You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PhpSpreadsheet冻结Excel文件首行?

答:PhpSpreadsheet完全支持冻结首行功能

当然可以实现冻结首行!PhpSpreadsheet提供了专门的方法来设置冻结窗格,可能你在文档里没找到对应的说明入口~

核心是使用工作表对象的freezePane()方法,具体用法很简单:

示例代码

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

// 初始化Spreadsheet实例
$spreadsheet = new Spreadsheet();
$activeSheet = $spreadsheet->getActiveSheet();

// 冻结首行:指定A2单元格,代表冻结该单元格上方的所有区域(也就是第一行)
$activeSheet->freezePane('A2');

// 这里可以添加你的数据填充、样式设置等逻辑
// 比如给首行设置表头
$activeSheet->setCellValue('A1', '姓名');
$activeSheet->setCellValue('B1', '年龄');
$activeSheet->setCellValue('C1', '邮箱');

// 保存生成的Excel文件
$writer = new Xlsx($spreadsheet);
$writer->save('frozen_header.xlsx');

原理说明

freezePane()方法接受一个单元格坐标作为参数,这个坐标定义了冻结区域的右下角单元格的下一个位置。当你传入A2时,就会将A2上方的第一行全部冻结,滚动表格内容时首行会保持固定不动。

如果需要冻结首列或者同时冻结首行+首列,也可以用这个方法:

  • 冻结首列:$activeSheet->freezePane('B1');
  • 同时冻结首行和首列:$activeSheet->freezePane('B2');

内容的提问来源于stack exchange,提问作者Ezra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:34:47