python xlsxwriter 怎么用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python xlsxwriter 怎么用相关的知识,希望对你有一定的参考价值。

参考技术A [python] view plain copy
</pre>网上已经有很多朋友 描述了 xlsxwriter 模块的基本用法。 插入一些数据,根据数据绘图等,楼主这里就不重复这些了,要说的就是网上一些非基本方法,这些方法也是我看英文文档一点点找的,相对不容易。毕竟楼主是连 4级都没有过的人。<p></p><p></p><pre name="code" class="python">workbook = xlsxwriter.Workbook('excel.xlsx') #创建一个文件
[python] view plain copy
<pre name="code" class="python">worksheet_1 = workbook.add_worksheet('sheet1') #文件里创建第一个工作表
[python] view plain copy
worksheet_2 = workbook.add_worksheet('sheet2') #文件里创建第二个工作表
format = workbook.add_format()#创建单元格格式,字典里可以写一些参数

[python] view plain copy
#一种方法可以直接在字典里 设置属性
[python] view plain copy
'bold': True, #字体加粗
'border':1, #单元格边框宽度
'align': 'center',
'valign': 'vcenter',
'fg_color': '#F4B084',#单元格背景颜色
[python] view plain copy

使用 python-xlsxwriter 或 bash 打开受密码保护的 ods 文件

【中文标题】使用 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 怎么用的主要内容,如果未能解决你的问题,请参考以下文章

python学习-xlsxwriter模块

python模块之XlsxWriter 详解

python模块XlsxWriter

python模块之XlsxWriter

3Python文件操作工具 xlsxwriter 工具

如何强制Python XlsxWriter以自定义格式写入单元格