phpexcel冻结行和列

6jjcrrmo  于 2022-11-28  发布在  PHP
关注(0)|答案(3)|浏览(270)

我正在尝试使用PHPExcel冻结工作表中的顶行和前3列。
我可以毫无问题地冻结该行:

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

或者,我可以冻结该列,而不会出现任何问题:

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

但是当我尝试同时使用这两种方法时,第一种方法被第二种方法覆盖。
有没有办法在同一张纸上同时使用这两种功能?

  • 谢谢-谢谢
46qrfjad

46qrfjad1#

我想你是想冻结行和列。
freezePane显然会覆盖您以前可能已经给它的任何参数。
根据您当前的方案,我看到您正在尝试冻结顶行最左侧的3列
试试这个:

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

这将冻结第1行A、B和C列
这应该可以完成您的工作!

注意:**freezePane的工作方式与您在MS Excel中的使用方式完全相同。您选择一个单元格,然后选择“冻结”。它将冻结该单元格上方的所有行以及其左侧的所有列。

czq61nw1

czq61nw12#

// 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,您可以使用此。

composer require phpoffice/phpspreadsheet 1.10
nmpmafwu

nmpmafwu3#

//创建新的电子表格对象$spreadsheet = new Spreadsheet();
(...)
//带坐标:(7)将表格中的每一行都冻结成一个列;
//带有单元格名称:如果您有任何问题,请单击“取消”按钮。

相关问题