openpyxl 的 Worksheet 对象拥有 row_dimensions 和 column_dimensions 属性,可分别用于控制行高和列宽。
import openpyxl
wb=openpyxl.Workbook()
sheet=wb.active
# 设置行高
sheet['A1']='行高被设置为 100'
sheet.row_dimensions[1].height=100
# 设置列宽
sheet['B2']='列宽被设置为 50'
sheet.column_dimensions['B'].width=50
wb.save('dimensions.xlsx')
运行结果:
- row_dimensions 可以通过 Excel 行编号(1,2……)来获取行对象,这样我们就可以设置其行高。
- 同理,column_dimensions 可以通过 Excel 列编号(A,B……)来获取列对象,得到列对象之后,我们就可以设置其列宽啦。
- Excel 默认行高为 13.5;默认列宽为 8.38。
发现了一个有趣的现象,即在代码层面,把行高与列宽强行设置为 0,实际上却并不为 0。
# 设置行高为 0
sheet['A3'] = '行高被设置为 0,实际为 15'
sheet.row_dimensions[3].height = 0
# 设置列宽为 0
sheet['D3'] = '列宽被设置为 0,实际为 8.38'
sheet.column_dimensions['D'].width = 0
运行结果:
也就是说,列宽最小值为 8.38;而行高最小值为 15。