Python或LibreOffice保存用密码加密的xlsx文件
我试图保存一个用密码加密的Excel文件。我已经试着按照指南上-和完美的工作。然而,这是在GUI中,但是我正在寻找一种在headless模式下使用命令行界面的解决方案 我已经看了Python或LibreOffice保存用密码加密的xlsx文件,python,excel,encryption,ubuntu-14.04,libreoffice-calc,Python,Excel,Encryption,Ubuntu 14.04,Libreoffice Calc,我试图保存一个用密码加密的Excel文件。我已经试着按照指南上-和完美的工作。然而,这是在GUI中,但是我正在寻找一种在headless模式下使用命令行界面的解决方案 我已经看了文库,但里面什么也找不到 同样,我也查看了Python3库的文档openpyxl,但也没有发现任何有用的东西 是否可以使用不需要任何用户交互或X会话的命令行(或Python库)在Ubuntu 14.04/16.04上保存用密码加密的Excel 2007+文件。如果您想从CPython/PyPy使用它,可以使用模块调用外部
文库
,但里面什么也找不到
同样,我也查看了Python3库的文档openpyxl
,但也没有发现任何有用的东西
是否可以使用不需要任何用户交互或X会话的命令行(或Python库)在Ubuntu 14.04/16.04上保存用密码加密的Excel 2007+文件。如果您想从CPython/PyPy使用它,可以使用模块调用外部Jython脚本
导入操作系统
导入系统
从java.io导入BufferedInputStream
从java.io导入文件InputStream
从java.io导入文件输出流
从java.io导入文件
从java.io导入IOException
从org.apache.poi.poifs.crypt导入EncryptionInfo,EncryptionMode
从org.apache.poi.poifs.crypt导入Ciperalgorithm,HashAlgorithm
从org.apache.poi.poifs.crypt.agile导入AgileEncryptionFoBuilder
从org.apache.poi.openxml4j.opc导入OPCPackage,PackageAccess
从org.apache.poi.poifs.filesystem导入poifsffilesystem
从org.apache.poi.ss.usermodel导入WorkbookFactory
def encrypt_xlsx(输入名称、输出名称、密码):
#阅读
in_f=文件(in_fname)
in\u wb=WorkbookFactory.create(in\u f,密码)
in_fis=FileInputStream(in_fname)
in_wb.close()
#加密
out_poi_fs=poifsffilesystem()
info=EncryptionInfo(EncryptionMode.agile)
enc=info.getEncryptor()
enc.confirmPassword(密码)
opc=OPCPackage.open(在f中,PackageAccess.READ\u WRITE)
out\u os=enc.getDataStream(out\u poi\u fs)
opc.save(输出操作系统)
opc.close()
#写
out\u fos=FileOutputStream(out\u fname)
out\u poi\u fs.writeFilesystem(out\u fos)
结束
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
in_fname=sys.argv[1]
out\u fname=sys.argv[2]
密码=sys.argv[3]
加密\u xlsx(输入\u fname、输出\u fname、密码)
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/poi-ooxml-3.15.jar:poi-3.15/poi-ooxml-schemas-3.15.jar:poi-3.15/poi-ooxml-schemas-3.15.15.jar:poi-3.15/poi-3.15org.python.util.jython-B encrypt.py test1.xlsx test1enc.xlsx 12345678
其中:
- encrypt.py-脚本的名称
- test1.xlsx-输入文件名
- test1enc.xlsx-输出文件名
- 12345678-密码