在 drupal 8 自定义模块中,创建 Excel 文件,写入数据并使用密码锁定文件?

In drupal 8 custom module, Create Excel file, wirte data and lock file with password?

我想用密码创建 excel 文件。

$library = libraries_load('PHPExcel');
$objPHPExcel = new \PHPExcel();
$objPHPExcel = \PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel = $objPHPExcel->load('sample.xlsx');
$objPHPExcel->setActiveSheetIndex(0)
    ->setCellValue('A1', 'Hello World');
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('sample.xlsx');

文件已创建 我想将密码放入 'sample.xlsx' 文件

我尝试了以下代码。

$objPHPExcel->getActiveSheet()->getSecurity()->setWorkbookPassword("password");

但无法正常工作,在此先感谢您的帮助。

以下代码在 drupal 8.7.7 中测试

use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Spreadsheet;    

$library = libraries_load('PHPExcel');
$objPHPExcel = new \PHPExcel();
$objPHPExcel = \PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel = $objPHPExcel->load('sample.xlsx');
$objPHPExcel->setActiveSheetIndex(0)
 ->setCellValue('A1', 'Hello')
 ->setCellValue('B1', 'World');

Excel 提供 3 级“保护”:工作sheet 安全、文件安全和手机安全。

Worksheet security 提供其他安全选项:您可以禁止在特定 sheet 上插入行, 禁止排序,

设置示例 工作sheet 安全:

   $objPHPExcel->getActiveSheet()->getProtection()
    ->setSheet(true) //use to enable worksheet protection
    ->setSort(true)
    ->setInsertRows(true)
    ->setFormatCells(true)
    ->setPassword('simple');

文档安全性 允许您为整个跨页设置密码sheet,仅当输入该密码时才允许进行更改。

设置文档安全性的示例:

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

单元格安全性 提供 lock/unlock 单元格以及 show/hide 内部公式的选项。

设置示例 Cell Security:

$objPHPExcel->getActiveSheet()
  ->getStyle('B1')
  ->getProtection()
  ->setLocked(PHPExcel_Style_Protection::PROTECTION_UNPROTECTED);

保护活动作品后sheet 保存文件。

$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('sample.xlsx');