【问题标题】:Open password-protected ods file with python-xlswriter or bash使用 python-xlsxwriter 或 bash 打开受密码保护的 ods 文件
【发布时间】: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

但这不会返回电子表格中的数据。

【问题讨论】:

  • 发布你的代码,如果你尝试过的话。
  • 我编辑问题并插入代码
  • 问题的标题与问题的正文和示例完全不同。一个是关于读取/打开/解密 --- 而另一个是关于写入/保存/加密。

标签: python bash ubuntu spreadsheet libreoffice


【解决方案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”打开?
猜你喜欢
  • 2018-08-09
  • 1970-01-01
  • 2021-10-08
  • 2020-08-29
  • 2013-10-27
  • 2022-11-17
  • 1970-01-01
  • 2018-10-01
  • 2013-07-14
相关资源
最近更新 更多