为什么openpyxl单元格的字体大小不返回



我正在尝试从excel工作表中获取单元格的字体大小。但是,我读到的许多文件的单元格字体大小都是"无",这适用于整个工作表。我已经检查了所有这些单元格中是否都有文本。这是cell.font:的样本输出

<openpyxl.styles.fonts.Font object>
Parameters:
name='Asap', charset=None, family=None, b=False, i=False, strike=None, outline=None, shadow=None, condense=None, color=None, extend=None, sz=None, u=None, vertAlign=None, scheme=None

当这种情况发生时,我可以假设整个工作表的字体大小相同吗?或者它使用了一些默认大小,我如何获得默认大小?

模块不太可能有限制。有时,您可以使用模块win32com及其对Excel内部的直接访问来解决问题。

类似这样的东西:

import win32com.client
app = win32com.client.Dispatch("Excel.Application")
cell = app.ActiveSheet.Range("A1")
print(cell.Font.Size) # Output: 10.0

https://learn.microsoft.com/en-us/office/vba/api/excel.cellformat.font

但恐怕它只适用于Windows。

从最新的openpyxl开始,您可以执行cell.font.size来检索大小。当所有单元格都具有相同的字体大小时,这一点有效,而且这也适用于合并范围中的单元格部分。查看Font对象时,它不会显示大小参数,尽管它是Font()的有效参数。如果您查看其他对象的参数列表,您还会注意到缺少一些有效的参数。

最新更新