我试图让用户以只读模式保存/下载我的excel文件(Windows服务器上的apache,所有下载的用户都在使用Windows)。
到目前为止,我已经四处寻找一个好的解决方案并尝试了所有建议,但似乎没有任何工作。
我尝试添加以下行:
$objPHPExcel->getSecurity()->setLockWindows(true);
$objPHPExcel->getSecurity()->setLockStructure(true);
但仍以可编辑模式保存。我在这里错过了什么吗?
我更喜欢使用phpexcel实现上述目标的解决方案,但使用核心php也是可以接受的。
需要修改phpexcel核心类的东西是不可接受的,因为我们组织中的其他开发人员开发了一大堆应用程序,他们认为核心类是不受影响的。
答案 0 :(得分:2)
没有设置密码,我没有找到任何办法。
// Set password for readonly activesheet
$objPHPExcel->getSecurity()->setLockWindows(true);
$objPHPExcel->getSecurity()->setLockStructure(true);
$objPHPExcel->getSecurity()->setWorkbookPassword("password");
// Set password for readonly data
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
$objPHPExcel->getActiveSheet()->getProtection()->setPassword("password");
答案 1 :(得分:0)
来自文档:
文档安全性允许您在完整的电子表格上设置密码,只允许在输入密码时进行更改。
他们给出的例子如下:
$objPHPExcel->getSecurity()->setLockWindows(true);
$objPHPExcel->getSecurity()->setLockStructure(true);
$objPHPExcel->getSecurity()->setWorkbookPassword("PHPExcel");
看起来你错过了密码。
答案 2 :(得分:0)
这段代码可以帮助我编辑单元格的值并格式化它们。
$objPHPExcel->getActiveSheet()->getProtection()->setSort(true);
$objPHPExcel->getActiveSheet()->getProtection()->setInsertRows(true);
$objPHPExcel->getActiveSheet()->getProtection()->setFormatCells(true);