如何使用phpExcel模块将excel文件保存为只读模式

时间:2013-07-17 02:07:47

标签: php phpexcel

我试图让用户以只读模式保存/下载我的excel文件(Windows服务器上的apache,所有下载的用户都在使用Windows)。

到目前为止,我已经四处寻找一个好的解决方案并尝试了所有建议,但似乎没有任何工作。

我尝试添加以下行:

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

但仍以可编辑模式保存。我在这里错过了什么吗?

我更喜欢使用phpexcel实现上述目标的解决方案,但使用核心php也是可以接受的。

需要修改phpexcel核心类的东西是不可接受的,因为我们组织中的其他开发人员开发了一大堆应用程序,他们认为核心类是不受影响的。

3 个答案:

答案 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);