Adicione uma senha (autônoma) ao xlsx existente sem ferramentas exclusivas do Windows

Estou gerando um arquivo xlsx usando o Openpyxl. E eu gostaria de proteger opasta de trabalho usando uma senha que eu tenho como variável no mesmo script. Isso pode ser definido manualmente usando Arquivo> Senhas .. e definindo "Senha para abrir" no próprio Excel.

O Openpyxl apenas parece oferecer proteção de edição baseada em folhas através dews.protection.set_password("mypassword") (Ondews é uma planilha aberta)

Parece que não consigo encontrar os exemplos exatos, mas em algum lugar eu li que os arquivos xlsx eram basicamente arquivos zip e, embora parecesse verdade quando executei comandos comounzip -t e7z x parece que adicionar uma senha usando utilitários como7z ouzipcloak quebra completamente o arquivo quando ele é montado novamente.

 % 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

Quando aberto com o Excel:

O Excel não pode abrir o arquivo 'sample.xlsx' porque o formato ou a extensão do arquivo não é válido. Verifique se o arquivo não foi corrompido e se a extensão corresponde ao formato do arquivo.

Observe que o resultado é o mesmo, independentemente do tipo que eu use com7ze o mesmo comzipcloak também.

Até agora, olhei minhas opções usando Bash e Python, e isso parece bastante terrível. Mas estou praticamente aberto a qualquer coisa. As máquinas que estou fazendo isso executam o OS X e o Debian.

questionAnswers(1)

yourAnswerToTheQuestion