导出Excel怎设置密码

我想在导出Excel的时候给工作簿设置密码,有没有什么Excel扩展可以实现的

导出Excel怎设置密码

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 9

如果你用的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');
3年前 评论
huchao399 (楼主) 3年前

file我想实现打开Excel时输入密码才能查看的效果

3年前 评论
$objPHPExcel->getSecurity()->setLockWindows(true);
$objPHPExcel->getSecurity()->setLockStructure(true);
$objPHPExcel->getSecurity()->setWorkbookPassword("PHPExcel");

这个好像是对整个文件加密的

3年前 评论
对整个文件加密:
$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
);
3年前 评论
huchao399 (楼主) 3年前

楼主找到解决方法了吗?

2年前 评论
huchao399 (楼主) 2年前

你可以尝试以下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);
1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!