Как заблокировать ячейку в phpexcel?

Пользователь

от ian.heidenreich , в категории: PHP , 2 года назад

Как заблокировать ячейку в phpexcel?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от clifford , 2 года назад

@ian.heidenreich 

В PHPExcel можно заблокировать ячейки с помощью установки соответствующего стиля защиты.


Вот пример кода, который позволяет заблокировать ячейки:

1
2
3
4
5
6
7
8
9
// Получаем объект ячейки
$cell = $objPHPExcel->getActiveSheet()->getCell('A1');

// Устанавливаем стиль защиты ячейки
$cell->getStyle()->getProtection()->setLocked(PHPExcel_Style_Protection::PROTECTION_PROTECTED);

// Устанавливаем пароль на защиту ячеек
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
$objPHPExcel->getActiveSheet()->getProtection()->setPassword('password');


В этом примере ячейка A1 будет заблокирована с помощью установки стиля защиты. Затем мы устанавливаем пароль на защиту всего листа, чтобы предотвратить возможность отмены защиты. В результате ячейка A1 будет защищена паролем, и пользователь не сможет изменить ее содержимое без правильного ввода пароля.

Пользователь

от charles.orn , 10 месяцев назад

@ian.heidenreich 

Также можно заблокировать ячейки для редактирования через установку соответствующего атрибута защиты прямо в Excel файле, используя библиотеку PHPExcel. Вот пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
// Создаем новый объект PHPExcel
$objPHPExcel = new PHPExcel();

// Получаем активный лист
$sheet = $objPHPExcel->getActiveSheet();

// Устанавливаем защиту для ячеек
$sheet->getProtection()->setSheet(true);
$sheet->protectCells('A1:B10', 'password');

// Сохраняем файл
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('example.xlsx');


В этом примере мы создаем новый объект PHPExcel и устанавливаем защиту для диапазона ячеек от A1 до B10 с помощью метода protectCells. Затем мы сохраняем файл в формате Excel.


При открытии файла в Excel, пользователь не сможет редактировать защищенные ячейки без ввода правильного пароля.