有数千行使用openpyxl的代码,我们更新了openpyxl(版本2.6.2),看来影响向后兼容性的更改错过了文档。
.column
- 以前返回一封信 - 现在返回一个数字,并且必须使用新方法.column_letter
来返回这封信? (我是否从文档中正确理解了?).column
和.col_idx
返回的内容之间是否存在任何差异? (这些基本上是返回相同的东西,还是一个从零开始而另一个基于一个?或者......?).column
搜索/替换.column_letter
(期望列的字母) - 还有什么需要注意的吗? (对于E.G.,.column_letter
返回的集合是否会完全抵消,或者与旧的.column
完全相同?)是的,OpenPyXL 2.6+中有一些重大变化,不知何故错过了足够的文档。
需要注意的更大变化 - 因为它也会影响.column
/ .column_letter
方法 - 是.merge_cells
的功能。
在合并范围内的单元格上不再可以使用.column_letter
或.col_idx
- 您必须使用.column
(用于数字)或get_column_letter(cell)
方法用于输入字母。 (请注意,您必须从utils导入方法get_column_letter
:
from openpyxl.utils import get_column_letter
现在,回答您的具体问题:
1)是的,你现在必须使用.column_letter
(不再是.column
)来获得专栏信 - 但如上所述,使用get_column_letter(cell)
更安全。是的,.column
现在将返回一个数字,而不是一个字母。
2)是的,.column
现在返回一个数字,就像.col_idx
一样。事实上,我建议不再使用.col_idx
,因为它不再适用于合并单元格范围内的单元格。
3)由于处理合并的细胞范围的变化,用.column
而不是get_column_letter(cell)
替换.column_letter
。所以简单的搜索/替换是不可取的。然而,在合并的单元格之外,.column_letter
现在返回.column
曾经做过的事情。