OpenPyXL中的列和行尺寸始终为无

发布于 2021-01-29 16:06:59

为什么openpyxl会将每个行和列的维读取为None?无论表是通过openpyxl还是在Microsoft Excel中创建的,都是这种情况。

import openpyxl
wb = openpyxl.load_workbook(r'C:\data\MyTable.xlsx')
ws = wb.active
print ws.row_dimensions[1].height
print ws.column_dimensions['A'].width

打印无和无。这些不是隐藏的列/行。在Excel中查看时,它们显然具有尺寸。

我知道使用迭代器加载工作簿将阻止创建维字典,但这会导致关键错误,并且我在这里不使用迭代器。

有没有其他方法可以确定单元格/行/列的宽度/高度?

==============解决方案=================

感谢Charlie,我意识到以下是获取所有行高列表的最佳方法:

import openpyxl
wb = openpyxl.load_workbook(r'C:\Data\Test.xlsx')
ws = wb.active
rowHeights = [ws.row_dimensions[i+1].height for i in range(ws.max_row)]
rowHeights = [15 if rh is None else rh for rh in rowHeights]
关注者
0
被浏览
35
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    RowDimensionColumnDimension对象仅在覆盖默认值时存在。因此,在为其分配值之前,ws.row_dimensions[1].height总是如此None

    默认值为: {'defaultRowHeight': '15', 'baseColWidth': '10'}



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看