导出Excel怎设置密码

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

导出Excel怎设置密码

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 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');
4年前 评论
huchao399 (楼主) 4年前

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

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

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

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

楼主找到解决方法了吗?

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

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

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