使用 python-xlsxwriter 或 bash 打开受密码保护的 ods 文件
Posted
技术标签:
【中文标题】使用 python-xlsxwriter 或 bash 打开受密码保护的 ods 文件【英文标题】:Open password-protected ods file with python-xlswriter or bash 【发布时间】:2019-11-05 06:44:54 【问题描述】:我需要一个代码来通过 python3(首选)或 bash 打开电子表格,我给他们密码并阅读它们。
我尝试通过 python-module "xlswriter"
我用这种方法保护 xlsx:
import xlsxwriter
workbook = xlsxwriter.Workbook('for-test-password.xlsx')
worksheet = workbook.add_worksheet()
content = (
['Gas', 10],
['Gasoline', 20],
['Potro', 30],
['Other',40],
)
row = 0
col = 0
for item, cost in (content):
worksheet.write(row, col, item)
worksheet.write(row, col + 1, cost)
row += 1
worksheet.protect('Passwd')
或尝试在 bash-script 中使用此代码
LibreOffice -p password -f xlsx for-test-password.xlsx
但这不会返回电子表格中的数据。
【问题讨论】:
发布你的代码,如果你尝试过的话。 我编辑问题并插入代码 问题的标题与问题的正文和示例完全不同。一个是关于读取/打开/解密 --- 而另一个是关于写入/保存/加密。 【参考方案1】:我用这种方法保护 xlsx:
worksheet.protect('Passwd')
这不是保护工作簿的密码。它正在保护工作表。 XlsxWriter 不支持密码保护工作簿/xlsx 文件。
来自XlsxWriter docs on protect():
注意
Excel 中的工作表级密码提供非常薄弱的保护。它们不会加密您的数据,并且很容易停用。 XlsxWriter 不支持完整的工作簿加密,因为它需要完全不同的文件格式,并且需要几个月的时间来实施。
【讨论】:
问题是(AFAIK)在 XlsxWriter 中需要大量工作才能支持不同的文件格式才能启用加密。【参考方案2】:You missed the workbook.close()
找到代码。
import xlsxwriter
workbook = xlsxwriter.Workbook('for-test-password.xlsx')
worksheet = workbook.add_worksheet()
content = (['Gas', 10],['Gasoline', 20],['Potro', 30],['Other',40],)
row = 0
col = 0
for item, cost in (content):
worksheet.write(row, col, item)
worksheet.write(row, col + 1, cost)
row += 1
worksheet.protect('Passwd')
workbook.close()
注意:以上代码在 python2.7 中运行良好
要在终端/bash 中打开受密码保护的密码,您需要一个模块,该模块位于 here
受保护的工作表及其属性可以在here找到
【讨论】:
不,这不起作用,因为我需要打开受此程序保护的工作表,即我需要通过“密码”打开第一个文档,然后对其进行编辑,最后使用“密码”设置密码 您的问题不清楚。您编写的代码是打开一个新文件并添加内容并为工作表设置密码。就这样。如果您需要打开具有密码的现有文件,您必须重写代码以打开文件并更改密码(模块'xlrd')。 是的,这是我的想法,你说我必须使用“xlrd”来打开受保护的 xlsx 文件?没有办法用“xlsxwriter”打开?以上是关于使用 python-xlsxwriter 或 bash 打开受密码保护的 ods 文件的主要内容,如果未能解决你的问题,请参考以下文章
我的电脑正常启动,怎么每次都会出现“0xc00000ba”失败
Windows——打印机错误(操作无法完成(错误 0x000006ba)。本地打印机后台处理程序服务没有运行。请重新启动打印机后台处理程序或重新启动计算机。)解决方案