Python oder LibreOffice Save xlsx Datei mit Passwort verschlüsselt

Ich versuche, eine mit dem Passwort verschlüsselte Excel-Datei zu speichern. Ich habe versucht, den Führer auf https://help.libreoffice.org/Common/Protecting_Content_in – und funktioniert perfekt. Allerdings ist dies in der GUI, aber ich bin auf der Suche nach einer Lösung mit der Kommandozeilen-Schnittstelle im kopflosen Modus.

Ich habe den man libreoffice , aber ich konnte dort nichts finden.

Ebenso habe ich mir die Dokumentation der Python 3-Bibliothek openpyxl , aber ich habe auch hier nichts nützliches gefunden.

Ist es möglich, eine Excel 2007+ Datei mit einem Passwort auf Ubuntu 14.04 / 16.04 mit der Befehlszeile (oder Python-Bibliothek) zu verschlüsseln , die keine Benutzerinteraktion oder X-Sitzung benötigt?

One Solution collect form web for “Python oder LibreOffice Save xlsx Datei mit Passwort verschlüsselt”

Es gibt eine Lösung mit Jython und Apache POI . Wenn du es von CPython / PyPy verwenden möchtest, kannst du das Unterprozeßmodul verwenden , um das externe Jython-Skript aufzurufen.

  1. Ich gehe davon aus, dass du Java JRE / JDK installiert hast
  2. Erstellen Sie nicht verschlüsselte xlsx-Datei mit Excel / Calc oder verwenden Sie xlsxwriter oder openpyxl und speichern Sie es als test1.xlsx
  3. Herunterladen standalone Jython
  4. Herunterladen Apache POI
  5. Extrahiere Apache POI im selben Verzeichnis wo ist Standalone Jython Jar
  6. Speichern Sie das folgende Jython-Skript als encrypt.py :
 import os import sys from java.io import BufferedInputStream from java.io import FileInputStream from java.io import FileOutputStream from java.io import File from java.io import IOException from org.apache.poi.poifs.crypt import EncryptionInfo, EncryptionMode from org.apache.poi.poifs.crypt import CipherAlgorithm, HashAlgorithm from org.apache.poi.poifs.crypt.agile import AgileEncryptionInfoBuilder from org.apache.poi.openxml4j.opc import OPCPackage, PackageAccess from org.apache.poi.poifs.filesystem import POIFSFileSystem from org.apache.poi.ss.usermodel import WorkbookFactory def encrypt_xlsx(in_fname, out_fname, password): # read in_f = File(in_fname) in_wb = WorkbookFactory.create(in_f, password) in_fis = FileInputStream(in_fname) in_wb.close() # encryption out_poi_fs = POIFSFileSystem() info = EncryptionInfo(EncryptionMode.agile) enc = info.getEncryptor() enc.confirmPassword(password) opc = OPCPackage.open(in_f, PackageAccess.READ_WRITE) out_os = enc.getDataStream(out_poi_fs) opc.save(out_os) opc.close() # write out_fos = FileOutputStream(out_fname) out_poi_fs.writeFilesystem(out_fos) out_fos.close() if __name__ == '__main__': in_fname = sys.argv[1] out_fname = sys.argv[2] password = sys.argv[3] encrypt_xlsx(in_fname, out_fname, password) 
  1. Rufen Sie es von der Konsole an:
 java -cp "jython-standalone-2.7.0.jar:poi-3.15/lib/commons-codec-1.10.jar:poi-3.15/lib/commons-collections4-4.1.jar:poi-3.15/poi-3.15.jar:poi-3.15/poi-ooxml-3.15.jar:poi-3.15/poi-ooxml-schemas-3.15.jar:poi-3.15/ooxml-lib/curvesapi-1.04.jar:poi-3.15/ooxml-lib/xmlbeans-2.6.0.jar" org.python.util.jython -B encrypt.py test1.xlsx test1enc.xlsx 12345678 

Woher:

  • Encrypt.py – Name des Skripts
  • Test1.xlsx – Eingabe Dateiname
  • Test1enc.xlsx – Ausgabedateiname
  • 12345678 – passwort

Final verschlüsselte xslx sollte in test1enc.xlsx sein .

  • Warum mein Code nicht entschlüsseln die verschlüsselte Zeichenfolge auf der Grundlage des Wörterbuchs?
  • ASCII Vigenere Chiffre nicht entschlüsseln
  • Xlrd - Fehler "Arbeitsmappe ist verschlüsselt", Python 3.2.3
  • Python-Verschlüsselung - Unerwartete Variablenrückgabe
  • Python - GPG entschlüsselt funktioniert aber GNUPG nicht
  • Verschlüsselte und sichere Docker-Container
  • Häufigkeitsanalyse mit Tupelfehler
  • Nodejs crypto vs python hashlib
  • Entschlüsseln von Daten in Python, die in Java von Java verschlüsselt wurden
  • Obfuscate Strings in Python
  • Django, python und link verschlüsselung
  • Python ist die beste Programmiersprache der Welt.