问答 / 0 / 9 / 创建于 4年前
我想在导出Excel的时候给工作簿设置密码,有没有什么Excel扩展可以实现的
如果你用的PHPExcel的话,PHPExcel是有设置密码的
PHPExcel
$objPHPExcel->getActiveSheet()->getProtection()->setPassword('PHPExcel'); $objPHPExcel->getActiveSheet()->getProtection()->setSheet(true); $objPHPExcel->getActiveSheet()->getProtection()->setSort(true); $objPHPExcel->getActiveSheet()->getProtection()->setInsertRows(true); $objPHPExcel->getActiveSheet()->getProtection()->setFormatCells(true);
手册上面是这么说的
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true); // Needs to be set to true in order to enable any worksheet protection! $objPHPExcel->getActiveSheet()->protectCells('A3:E13', 'PHPExcel');
我想实现打开Excel时输入密码才能查看的效果
$objPHPExcel->getSecurity()->setLockWindows(true); $objPHPExcel->getSecurity()->setLockStructure(true); $objPHPExcel->getSecurity()->setWorkbookPassword("PHPExcel");
这个好像是对整个文件加密的
对整个文件加密: $objPHPExcel->getSecurity()->setLockWindows(true); $objPHPExcel->getSecurity()->setLockStructure(true); $objPHPExcel->getSecurity()->setWorkbookPassword("PHPExcel"); 对工作表加密: $objPHPExcel->getActiveSheet()->getProtection()->setPassword('PHPExcel'); $objPHPExcel->getActiveSheet()->getProtection()->setSheet(true); $objPHPExcel->getActiveSheet()->getProtection()->setSort(true); $objPHPExcel->getActiveSheet()->getProtection()->setInsertRows(true); $objPHPExcel->getActiveSheet()->getProtection()->setFormatCells(true); 对单元格加密: $objPHPExcel->getActiveSheet()->getStyle('B1')->getProtection()->setLocked( PHPExcel_Style_Protection::PROTECTION_UNPROTECTED );
楼主找到解决方法了吗?
你可以尝试以下COM的方式加密。代码如下
$xls_app = new COM('Excel.Application', null, CP_UTF8); $xls_app->DisplayAlerts = false; // Excel文件打开 $book = $xls_app->WorkBooks->Open($tmpfile); // 保存 $book->saveAs($tmpfile, null, $password);
我要举报该,理由是:
如果你用的
PHPExcel
的话,PHPExcel是有设置密码的手册上面是这么说的
这个好像是对整个文件加密的
楼主找到解决方法了吗?
你可以尝试以下COM的方式加密。代码如下