0

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

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

我尝试添加以下行:

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

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

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

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

4

3 回答 3

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");
于 2013-12-17T06:56:56.323 回答
0

来自文档:

文档安全性允许您在完整的电子表格上设置密码,只允许在输入密码时进行更改。

他们给出的例子如下:

$objPHPExcel->getSecurity()->setLockWindows(true);
$objPHPExcel->getSecurity()->setLockStructure(true);
$objPHPExcel->getSecurity()->setWorkbookPassword("PHPExcel");

看起来您缺少密码。

于 2013-07-17T02:54:59.620 回答
0

这段代码对我有用,可以编辑单元格的值并格式化它们。

$objPHPExcel->getActiveSheet()->getProtection()->setSort(true);
$objPHPExcel->getActiveSheet()->getProtection()->setInsertRows(true);
$objPHPExcel->getActiveSheet()->getProtection()->setFormatCells(true);
于 2016-05-06T10:07:51.167 回答