2

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

__incorrectUnitsColour__='FF33CC'
cell, sheet =GetCellFromDest(str(named_range.destinations),wb) # Returns the cell pointed to by the named_range, this should work fine as I use it a lot in other places.

cell.style.fill.fill_type=openpyxl.style.Fill.FILL_SOLID
cell.style.fill.start_color.index=__incorrectUnitsColour__

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

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

print cell.row
print cell.column

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

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

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

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

4

1 回答 1

0

我对此进行了更多研究。如果您遇到类似问题,请按照我的这个问题进行操作,该问题描述了上述问题的原因。到目前为止,这是一个已知问题openpyxl,有些人正在努力解决这个问题。所以希望这个错误(因为它已被确认是由库中的错误引起的)将很快得到修复。

我可以建议尝试缓解该问题的是,openpyxl在 Excel 中保存工作簿时,始终只选择一个未填充的单元格。也尽量不要通过 Excel 本身过多地触摸格式化的单元格,只需openpyxl. 如果您确实通过 Excel 更改了单元格格式,请确保一次只更改一个单元格 - 如果您将相同的样式应用于一系列单元格,那么当您使用openpyxl.

对我来说,这就是我所听到的关于作者的所有内容,并且到目前为止我自己也明白了这一点。

于 2013-08-17T17:51:12.800 回答