phpexcel freeze row and columns

2022-08-30 10:23:51

我正在尝试使用PHPExcel冻结工作表中的顶行和前3列。

我可以毫无问题地冻结行:

$objPHPExcel->getActiveSheet()->freezePane('A2');

或者我可以毫无问题地冻结列:

$objPHPExcel->getActiveSheet()->freezePane('D1');

但是当我尝试同时使用两者时,第一个被第二个覆盖了。

有没有办法在同一张纸上使用两者?

谢谢。


答案 1

我假设您正在尝试同时冻结列和行。

freezePane显然会覆盖您可能为其提供的任何先前参数。

根据您当前的情况,我看到您正在尝试冻结顶行和最左侧的3列

试试这个:

$objPHPExcel->getActiveSheet()->freezePane('D2');

这将冻结第 1 行列 A、B 和 C 列

这应该可以完成您的工作!

注意:工作方式与您在MS Excel中使用它的方式完全相同。选择一个单元格,然后选择冻结。它冻结了它上面的任何行,以及留给它的列。freezePane


答案 2
// Use this
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;


// Now, 
$spreadsheet    = new Spreadsheet();


// Freeze Rows Above (A3)
$spreadsheet->getActiveSheet()->freezePane('A3'); 

// Set Worksheet Name
$spreadsheet->getActiveSheet()->setTitle($subject); 

我正在使用这个在我的Laravel项目中。

对于作曲家,您可以使用此功能。

composer require phpoffice/phpspreadsheet 1.10

推荐