4 设置单元格属性
4.1 字体
在 openpyxl 中,通过 Font 对象来设置单元格的字体样式,在Font对象中,可以配置字体的类型,字体样式(粗体、斜体、下划线)、大小和颜色等。例如:
import openpyxl
from openpyxl.styles import Font
wb = openpyxl.load_workbook('./test.xlsx')
ws = wb.active
my_font1 = Font(name='仿宋', size=12, bold=True, italic=False, color='FF0000')
ws['A1']=value='红色仿宋'
ws['A1'].font=my_font1
my_font2 = Font(name='黑体', size=12, bold=False, italic=True,
underline='single', color='0000FF')
ws['A2']=value='蓝色黑体'
ws['A2'].font=my_font2
wb.save('./test.xlsx')
wb.close()
以上代码创建了两个Font对象,分别设置了单元格A1和A2的字体样式,运行效果如下:
4.2 宽度和高度
由于工作表的某一列的所有单元格具有同样的列宽,某一行的所有单元格具有同样的行高,因此,实际上是通过工作表的 column_dimensions 和 row_dimensions 属性来设置其某列的宽度和行的高度。以前面的文件为例,以下是如何设置列宽和行高的示例:
import openpyxl
wb = openpyxl.load_workbook('./test.xlsx')
ws = wb.active
# column width
ws.column_dimensions['A'].width = 20
ws.column_dimensions['B'].width = 30
# row height
ws.row_dimensions[1].height = 30
ws.row_dimensions[2].height = 40
wb.save('./test.xlsx')
wb.close()
运行脚本后,效果如下:
可以看到第1,2行的行高和第1,2列的列宽产生了变化。
再次强调: openpyxl 无法直接设置单元格的高度,只能设置行的高度。同样,列的宽度是针对整个列的,而不是单个单元格。
另外,在 openpyxl 中,行高和列宽的单位