【问题标题】:Protect the Excel file using PHPExcel使用 PHPExcel 保护 Excel 文件
【发布时间】:2023-03-31 01:30:01
【问题描述】:

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

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

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

【问题讨论】:

    标签: php phpexcel


    【解决方案1】:

    仅适用于 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');
    

    【讨论】:

    • 所以只是为了验证,所有保护仅适用于 Excel2007?
    • 根本不行,XLSX文件还是可以不用密码打开的(PHPExcel 1.8)
    • @MuhammadAbrar - 这可以正常工作....这不能保护工作簿不被打开;它可以保护工作表的元素不被更改......在你抱怨之前了解你在抱怨什么
    【解决方案2】:

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

    【讨论】:

    • 那么如何在excel文件中设置密码以避免php中无密码打开
    【解决方案3】:

    试试这些文档中没有提到的选项。

    $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');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-08
      • 1970-01-01
      • 2019-05-06
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      相关资源
      最近更新 更多