使用PHPExcel保护Excel文件

时间:2014-02-07 23:38:26

标签: php phpexcel

如何使用PHPExcel创建受密码保护的Excel工作表,我知道如何使用

保护Excel工作表
$G=$objPHPExcel->setActiveSheetIndex(0);
$G->getProtection()->setSheet(true);

但是我没有得到任何链接如何设置密码进行编辑保护,意味着用户可以在没有密码的情况下打开文件,但无法从工作表中删除保护,这可以通过数据菜单中的任何人轻松完成。欢迎提出建议。

3 个答案:

答案 0 :(得分:15)

仅适用于Excel2007 Writer:

设置工作簿安全性:

$objPHPExcel->getSecurity()->setLockWindows(true);
$objPHPExcel->getSecurity()->setLockStructure(true);

$objPHPExcel->getSecurity()->setWorkbookPassword('secret');

设置工作表安全性:

$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
$objPHPExcel->getActiveSheet()->getProtection()->setSort(true);
$objPHPExcel->getActiveSheet()->getProtection()->setInsertRows(true);
$objPHPExcel->getActiveSheet()->getProtection()->setFormatCells(true);

$objPHPExcel->getActiveSheet()->getProtection()->setPassword('password');

答案 1 :(得分:0)

当时,PHPExcel不支持使用密码保护工作表。

答案 2 :(得分:0)

尝试使用文档中未提及的这些选项。

$objPHPExcel->getActiveSheet()->getProtection()->setSelectLockedCells(true);
$objPHPExcel->getActiveSheet()->getProtection()->setSelectUnlockedCells(true);
$objPHPExcel->getActiveSheet()->getProtection()->setFormatCells(true);
$objPHPExcel->getActiveSheet()->getProtection()->setFormatRows(true);
$objPHPExcel->getActiveSheet()->getProtection()->setInsertColumns(true);
$objPHPExcel->getActiveSheet()->getProtection()->setInsertRows(true);
$objPHPExcel->getActiveSheet()->getProtection()->setInsertHyperlinks(true);
$objPHPExcel->getActiveSheet()->getProtection()->setDeleteColumns(true);
$objPHPExcel->getActiveSheet()->getProtection()->setDeleteRows(true);
$objPHPExcel->getActiveSheet()->getProtection()->setSort(true);
$objPHPExcel->getActiveSheet()->getProtection()->setAutofilter(true);
$objPHPExcel->getActiveSheet()->getProtection()->setObjects(true);
$objPHPExcel->getActiveSheet()->getProtection()->setScenarios(true);
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
$objPHPExcel->getActiveSheet()->getProtection()->setPassword('password');