Agregue una contraseña (desatendida) a xlsx existente sin las herramientas exclusivas de Windows

Estoy generando un archivo xlsx usando Openpyxl. Y me gustaría proteger lalibro de trabaj sí mismo usando una contraseña que tengo como variable en el mismo script. Esto se puede configurar manualmente usando Archivo> Contraseñas ... y configurando "Contraseña para abrir" en el propio Excel.

Openpyxl solo parece ofrecer protección de edición basada en hojas a través dews.protection.set_password("mypassword") (dóndews es una hoja de trabajo abierta)

Parece que no puedo encontrar los ejemplos exactos, pero en alguna parte leí que los archivos xlsx eran básicamente archivos zip, y aunque parecía cierto cuando ejecuté comandos comounzip -t y7z x parece que agregar una contraseña usando utilidades como7z ozipcloak rompe completamente el archivo cuando se vuelve a armar.

 % 7z x ../sample.xlsx .

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=utf8,Utf16=on,HugeFiles=on,64 bits,4 CPUs x64)

Scanning the drive for archives:
1 file, 98370 bytes (97 KiB)

Extracting archive: ../sample.xlsx
--
Path = ../sample.xlsx
Type = zip
Physical Size = 98370


No files to process
Everything is Ok

Files: 0
Size:       0
Compressed: 98370
 % 7z a -pmypassword sample.xlsx

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=utf8,Utf16=on,HugeFiles=on,64 bits,4 CPUs x64)

Scanning the drive:
1 file, 6148 bytes (7 KiB)

Creating archive: sample.xlsx

Items to compress: 1


Files read from disk: 1
Archive size: 367 bytes (1 KiB)
Everything is Ok
 % open sample.xlsx

Cuando se abre con Excel:

Excel no puede abrir el archivo 'sample.xlsx' porque el formato o la extensión del archivo no es válido. Verifique que el archivo no se haya dañado y que la extensión del archivo coincida con el formato del archivo.

Nota: el resultado es el mismo sin importar el tipo que use con7z, y lo mismo conzipcloak también

Hasta ahora he mirado mis opciones usando Bash y Python, y parece bastante grave. Pero estoy bastante abierto a cualquier cosa ... Las máquinas que estoy haciendo esto ejecutan OS X y Debian.

Respuestas a la pregunta(1)

Su respuesta a la pregunta