Column And Row Dimensions In Openpyxl Are Always None
Why is openpyxl reading every row and column dimension as None? This is the case regardless of whether the table was created via openpyxl or within Microsoft Excel. import openpyxl
Solution 1:
RowDimension
and ColumnDimension
objects exist only when the defaults are to be overwritten. So ws.row_dimensions[1].height
will be always be None
until it is assigned a value.
The default values are: {'defaultRowHeight': '15', 'baseColWidth': '10'}
Solution 2:
openpyxl: 3.0.4
source code: from openpyxl.worksheet.dimensions import SheetFormatProperties
it shows the {'defaultRowHeight': 15, 'baseColWidth': 8}
# dimensions.pyclassSheetFormatProperties(Serialisable):
...
def__init__(self,
baseColWidth=8, # <-----------------
defaultColWidth=None,
defaultRowHeight=15, # <------------
customHeight=None,
zeroHeight=None,
thickTop=None,
thickBottom=None,
outlineLevelRow=None,
outlineLevelCol=None,
):
self.baseColWidth = baseColWidth
self.defaultColWidth = defaultColWidth
self.defaultRowHeight = defaultRowHeight
self.customHeight = customHeight
self.zeroHeight = zeroHeight
...
an example
from openpyxl import load_workbook
from openpyxl.worksheet.dimensions import SheetFormatProperties
from openpyxl.worksheet.worksheet importWorksheetwb= load_workbook('xxx.xlsx')
for sheet in [wb[sheet_name] for sheet_name in wb.sheetnames]:
sheet: Worksheet
sheet_prop: SheetFormatProperties = sheet.sheet_formatdefault_width= sheet_prop.baseColWidthdefault_height= sheet_prop.defaultRowHeight
Post a Comment for "Column And Row Dimensions In Openpyxl Are Always None"