问题标签 [openpyxl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
863 浏览

python - Openpyxl 填充相邻单元格

我遇到了一件很奇怪的事情。当我尝试用纯色填充 Excel 工作表中的单元格时,它会填充相邻的单元格,有时甚至是几十个。这很奇怪,因为我在代码的其他地方成功地做了完全相同的事情,只是这个不同。我正在慢慢地对可能出现的问题没有想法,并认为也许这里有人遇到了类似的问题并解决了它。我的相关代码是:

如果您对可能出现的问题有任何想法,我会很高兴听到他们的声音,他们甚至不需要工作就可以让我朝着正确的方向思考;)

我在上面的代码中附加了:

正如预期的那样,它返回2 G. 我还证实,每运行几次,单元格突出显示的程度就会增加。openpyxl如果我使用相同范围突出显示同一工作表中的其他单元格,则它甚至比这更奇特。

我有一种强烈的感觉,工作表设置有问题,但我不知道是什么。此外,仅当我尝试以编程方式突出显示同一工作表中的多个单元格时,才会出现此错误。

是什么让所有这些更加奇怪的突出显示不同工作表中的单元格最终导致突出显示相同范围的单元格。

后续问题:是否openpyxl缓存任何工作表/工作簿数据?因为这可以解释这种行为。

0 投票
1 回答
1417 浏览

python - openpyxl 在关闭文件时选择其中一个单元格时突出显示多个单元格

在我的这篇文章中最初描述的以编程方式突出显示 openpyxl 中的单元格时,我遇到了奇怪的行为。我花了一些(更多)时间对此进行调查并设法跟踪此错误的来源。我不知道这是否是重现它的唯一方法,也许某些步骤是不必要的,但以下示例代码最接近我实际所做的:

会发生什么是我打开一个已经存在的工作簿,其中包含一些值(数字和文本)。数字位于我稍后将突出显示的单元格中(A1和名为“myName”的单元格,在我的测试用例中为E7 ),而文本位于相邻列中。然后我用一些颜色填充A1和命名单元格并保存工作簿。如果需要,可以重复多次(以模拟我的原始代码的长时间使用)。

第一次运行后,一切正常,如您所料。首次运行后,当您在 Excel 中打开工作簿,将“无填充”应用于其中包含A1的单元格区域并关闭工作簿时,会出现问题,同时仍保持这些单元格处于选中状态。当您再次以 10 或 20 次迭代运行我的代码时,您会注意到,当您在 Excel 中打开测试工作簿时,您最初选择的单元格区域现在突出显示为与A1相同的颜色。

我的问题是:

  • 我在这里做错了吗?该程序的性质要求它多次执行此过程,我不能禁止用户关闭选定单元格的工作簿。

  • 有什么办法可以防止这种情况发生吗?如果是,该怎么做?

额外信息 我查看了构成工作簿的 XML 文件,我在其中观察到了这种行为(有关标准,请参阅此网站)。我注意到,由于某些原因,当您在使用openpyxl更改格式时选择它们时,单元格样式参考会发生变化。例如,单元格B1(字母s)的样式应为 0(或不存在,因为默认情况下假定为 0),而在工作簿上运行上述代码时将openpyxl其更改为:1

这会导致单元格样式发生变化。我非常怀疑我在这里做错了什么,所以:

我的新问题是:模块的 哪个部分openpyxl最有可能对此负责?因为有些东西告诉我它需要修改。

0 投票
2 回答
310 浏览

python - 循环浏览多个不同长度的工作簿?

我有一些代码可以遍历多个工作簿:

但是,每个工作表中的范围都不同。有没有办法获取有数据的最后一行?

0 投票
0 回答
764 浏览

python - 你如何设置列的格式代码?

我知道如何设置单元格的格式代码,但是有没有办法为整个列设置格式?

单元格设置:
self.sh.cell(row=row,column=3).style.number_format.format_code = 'm/d/yyyy'

0 投票
2 回答
7222 浏览

python - openpyxl 创建一个引用另一个工作表中的单元格的函数

几天前我刚开始使用 openpyxl,它是一个很棒的库。但是,对于高级功能,文档似乎很少。我有几个问题。

  1. openpyxl 似乎将我插入的公式更改为小写,从而导致来自 excel 的未知引用。
  2. 此外,我更改了工作表的名称以适应小写,但仍然找到#NAME?引用所在的单元格中的错误。

有人可以告诉我如何或在哪里找到如何从openpyxl中的另一张表中引用一个单元格

0 投票
1 回答
2780 浏览

python - openpyxl 错误:“str”对象没有属性“BLACK”

我正在尝试使用 pythons OPENPYXL 模块在 excel 电子表格上设置样式。我不断提出这个错误:

“str”对象没有属性“BLACK”

基本上,我的代码从 .xlsx 文件中读取已知值的列表并将它们放入 python 列表中。我使用该列表来比较访问表中列中的值,以确保每个单元格中的值与已知值相比是正确的。

当我尝试使用 openpyxl 设置样式时,我的脚本出现问题。由于某种原因,出现了上述错误。奇怪的是,我什至没有在任何地方的样式中使用黑色,当我尝试设置填充时它似乎出错了。在脚本的SearchCursor部分,它遍历每一行。在第二遍时,脚本就被淘汰了。我有一种感觉它想覆盖一些东西,但我不知道是什么。

0 投票
5 回答
46899 浏览

python - 在 Windows 上的 python2.5 上安装 Openpyxl

我试过easy_install install openpyxlpython setup install. 两者都失败了。我也试过easy_install openpyxl了,又失败了。我包括我得到的输出。
当我尝试easy_install install openpyxl时,我得到以下输出:

当我尝试时,当我尝试时easy_install openpyxl,我得到相同的输出,但使用单词“openpyxl”而不是“安装”。
当我尝试python setup install时,我得到以下输出:

有什么建议么?

0 投票
1 回答
1442 浏览

python - 在 OpenPyxl 中使用 use_iterators = True 进行格式化

这类似于我之前的问题在 openpyxl 中获取格式化数据 唯一真正的区别是现在我真的想使用优化的工作簿来提高速度。

基本上,当我使用优化的阅读器时,我无法弄清楚如何检索格式细节。这是一个玩具样本,评论解释了我在打印声明中看到的内容。难道我做错了什么?有没有更好的方法来检索格式细节?

此外,如果有人知道支持 xlsx + 检索格式的 python 的不同 excel 阅读器,我愿意改变!(我已经尝试过 xlrd,虽然它在较新的版本中支持 xlsx,但它还不支持格式化)

0 投票
4 回答
44826 浏览

python - 如何迭代工作簿中的工作表,openpyxl

我一直在使用 openpyxl 模块对一些 .xlsx 文件进行一些处理。我一直在试图弄清楚如何迭代工作簿中的工作表。我不确定我是否能弄清楚。我已经尝试了下面的 2 个代码,它们都返回空结果。我的 .xlsx 文件有大约 20 张,所以应该返回一些东西。

我在互联网上找不到的一件事是如何将工作簿设置为实际工作簿。通常我正在写一个工作簿,所以我只是通过将一个变量设置为空工作簿来初始化它,workbook = Workbook()但在这种情况下,我不确定我是否可以通过这样做来打开一个工作簿workbook = Workbook(r"C:\Excel\LOOKUP_TABLES_edited.xlsx")

如果有人能确定我做错了什么,我将不胜感激。

这是我的代码:

0 投票
1 回答
2101 浏览

python - 从python中的xls或xlsx文件读取后将数据转换为字符串

我正在编写一个函数,用于从 xls/xlsx 文件中读取数据并插入到 db 中。但问题是从 xls 文件的单元格中读取数据后,该值变为浮点类型。

以下是我来自 xls 文件的示例数据:

我正在使用from openpyxl.reader.excel import load_workbook读取 xls 文件。当我将这些值插入 DB 时,从ZipZone列读取值后,所有数值都变为浮点类型,但应保存为字符串。以上 2 db 列的类型为VARCHAR

从终端中的 xls 文件读取后,我还打印了上述 2 列的值,结果如下:

压缩

我的代码

其他信息:我正在使用 python 2.6 和 Ubuntu 机器如何解决这个问题。