Python XlsxWriter - 字体和颜色


使用字体

要执行工作表单元格的格式化,我们需要在add_format()方法的帮助下使用 Format 对象,并使用其属性或格式化方法对其进行配置。

f1 = workbook.add_format()
f1 = set_bold(True)
# or
f2 = wb.add_format({'bold':True})

然后,该格式对象用作工作表的 write() 方法的参数。

ws.write('B1', 'Hello World', f1)

例子

要使单元格中的文本变为粗体、下划线、斜体删除线,我们可以使用这些属性或相应的方法。在以下示例中,文本 Hello World 是使用 set 方法编写的。

import xlsxwriter

wb = xlsxwriter.Workbook('hello.xlsx')
ws = wb.add_worksheet()

for row in range(4):
   ws.write(row,0, "Hello World")

f1=wb.add_format()
f2=wb.add_format()
f3=wb.add_format()
f4=wb.add_format()

f1.set_bold(True)
ws.write('B1', '=A1', f1)

f2.set_italic(True)
ws.write('B2', '=A2', f2)

f3.set_underline(True)
ws.write('B3', '=A3', f3)

f4.set_font_strikeout(True)
ws.write('B4', '=A4', f4)

wb.close()

输出

这是结果 -

使用字体1

例子

另一方面,我们可以使用font_color、font_namefont_size属性来格式化文本,如下例所示 -

import xlsxwriter

wb = xlsxwriter.Workbook('hello.xlsx')
ws = wb.add_worksheet()

for row in range(4):
   ws.write(row,0, "Hello World")
   
f1=wb.add_format({'bold':True, 'font_color':'red'})
f2=wb.add_format({'italic':True,'font_name':'Arial'})
f3=wb.add_format({'font_size':20})
f4=wb.add_format({'font_color':'blue','font_size':14,'font_name':'Times New Roman'})

ws.write('B1', '=A1', f1)
ws.write('B2', '=A2', f2)
ws.write('B3', '=A3', f3)
ws.write('B4', '=A4', f4)

wb.close()

输出

可以通过使用 Excel 打开工作表来验证上述代码的输出 -

使用字体2

文本对齐

XlsxWriter 的 Format 对象也可以使用对齐方法/属性创建。对齐属性可以有左、右、中心对齐值。

例子

import xlsxwriter
wb = xlsxwriter.Workbook('hello.xlsx')
ws = wb.add_worksheet()
for row in range(4):
   ws.write(row,0, "Hello World")
ws.set_column('B:B', 30)

f1=wb.add_format({'align':'left'})
f2=wb.add_format({'align':'right'})
f3=wb.add_format({'align':'center'})
f4=wb.add_format({'align':'justify'})
ws.write('B1', '=A1', f1)
ws.write('B2', '=A2', f2)
ws.write('B3', '=A3', f3)
ws.write('B4', 'Hello World', f4)

wb.close()

输出

以下输出显示具有不同对齐方式的文本“Hello World”。请注意,工作表对象的set_column()方法将 B 列的宽度设置为 30 。

文本对齐方式1

例子

Format 对象还具有valign属性来控制单元格的垂直放置。

import xlsxwriter

wb = xlsxwriter.Workbook('hello.xlsx')
ws = wb.add_worksheet()

for row in range(4):
   ws.write(row,0, "Hello World")
   
ws.set_column('B:B', 30)

for row in range(4):
   ws.set_row(row, 40)
f1=wb.add_format({'valign':'top'})
f2=wb.add_format({'valign':'bottom'})
f3=wb.add_format({'align':'vcenter'})
f4=wb.add_format({'align':'vjustify'})

ws.write('B1', '=A1', f1)
ws.write('B2', '=A2', f2)
ws.write('B3', '=A3', f3)
ws.write('B4', '=A4', f4)

wb.close()

输出

在上面的代码中,使用 set_row() 方法将第 1 行到第 4 行的高度设置为 40。

文本对齐2

单元格背景和前景色

Format对象的两个重要属性是bg_colorfg_color,用于设置单元格的背景和前景色。

例子

import xlsxwriter

wb = xlsxwriter.Workbook('hello.xlsx')
ws = wb.add_worksheet()
ws.set_column('B:B', 30)

f1=wb.add_format({'bg_color':'red', 'font_size':20})
f2=wb.add_format({'bg_color':'#0000FF', 'font_size':20})

ws.write('B1', 'Hello World', f1)
ws.write('B2', 'HELLO WORLD', f2)
wb.close()

输出

上面代码的结果如下所示 -

单元格背景和前景色