【发布时间】:2020-12-08 22:37:51
【问题描述】:
我一直在尝试编写一个脚本来将格式从一个工作簿复制到另一个工作簿,并且正如任何处理 openpyxl 的人都知道的那样,这是一个很大的脚本。我已经让它工作得很好,但我似乎无法弄清楚的一件事是如果隐藏列,如何从原始内容中读取。
谁能告诉我在工作簿、工作表、列或单元格对象中查看隐藏列的位置?
【问题讨论】:
我一直在尝试编写一个脚本来将格式从一个工作簿复制到另一个工作簿,并且正如任何处理 openpyxl 的人都知道的那样,这是一个很大的脚本。我已经让它工作得很好,但我似乎无法弄清楚的一件事是如果隐藏列,如何从原始内容中读取。
谁能告诉我在工作簿、工作表、列或单元格对象中查看隐藏列的位置?
【问题讨论】:
您要查找的属性位于Worksheet 对象的column_dimensions 和row_dimensions 属性内。
这些是绑定字典,其值为ColumnDimension/RowDimension 对象。您要查找的具体属性是ColumnDimension.hidden。
以下将打印工作表ws中所有隐藏列的列字母:
for colLetter,colDimension in ws.column_dimensions.items():
if colDimension.hidden == True:
print(colLetter)
对于行:
for rowNum,rowDimension in ws.row_dimensions.items():
if rowDimension.hidden == True:
print(rowNum)
据我了解,将工作簿加载为 read_only 可能会与 ws.row_dimensions 混淆,因此在这种情况下要小心。
【讨论】:
read_only 与ws.row_dimensions 搞混是什么意思?软件包网站上是否有一些问题跟踪器对此进行了解释?
AttributeError: 'ReadOnlyWorksheet' object has no attribute 'merged_cells'
row_dimensions 被搞砸的问题,但在read_only=False 中,可能不相关。
row_dimesnions 或column_dimensions 的这些属性
工作表具有 row_dimensions 和 column_dimensions 对象,其中包含有关特定行或列的信息,例如它们是否隐藏。列尺寸也可以分组,因此您在查看时需要考虑到这一点。
【讨论】: