要保护单元格内容,但允许使用PHPSpreadSheet删除行,可以使用以下代码示例:
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
// 加载Excel文件
$spreadsheet = IOFactory::load('example.xlsx');
// 获取第一个工作表
$worksheet = $spreadsheet->getActiveSheet();
// 设置保护工作表
$worksheet->getProtection()->setSheet(true);
// 设置保护单元格内容
$worksheet->getProtection()->setFormatCells(true);
// 允许使用PHPSpreadSheet删除行
$worksheet->getProtection()->setDeleteRows(true);
// 保存Excel文件
$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
$writer->save('example.xlsx');
上述代码中,首先使用IOFactory::load()
方法加载Excel文件。然后,通过getActiveSheet()
方法获取第一个工作表。接下来,使用getProtection()
方法获取工作表的保护对象,并通过设置setSheet()
方法设置工作表保护为true,设置setFormatCells()
方法保护单元格内容为true,设置setDeleteRows()
方法允许使用PHPSpreadSheet删除行。最后,使用IOFactory::createWriter()
方法和save()
方法保存Excel文件。
请确保已正确安装和配置PHPSpreadSheet库,并替换示例中的文件路径和文件名为您的实际文件路径和文件名。
上一篇:保护单元格或区域的条件格式化