使用 openpyxl 查找隐藏的单元格

Finding hidden cells using openpyxl

我一直在尝试编写一个脚本来将格式从一个工作簿复制到另一个工作簿,正如任何处理 openpyxl 的人都知道的那样,这是一个大脚本。我已经让它工作得很好,但我似乎无法弄清楚的一件事是如果列被隐藏,如何从原始文件中读取。

谁能告诉我在工作簿、工作表、列或单元格对象中的什么位置可以查看隐藏列的位置?

工作表有 row_dimensionscolumn_dimensions 个对象,其中包含有关特定行或列的信息,例如它们是否隐藏。列维度也可以分组,因此您在查看时需要考虑到这一点。

您要查找的属性在 Worksheet 对象的 column_dimensionsrow_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,因此在这种情况下要小心。