Python XlsxWriter 字体和颜色
要执行工作表单元格的格式化,我们需要借助 Format 对象 添加格式() 方法并使用其属性或格式化方法对其进行配置。
f1 = workbook.add_format() f1 = set_bold(True) # or f2 = wb.add_format({'bold':True})
然后将此格式对象用作工作表 write() 方法的参数。
ws.write('B1', 'Hello World', f1)
例子
在单元格中制作文本 粗体、下划线、斜体 or 击穿, 我们可以使用这些属性或相应的方法。在下面的示例中,文本 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()
结果如下:
例子
另一方面,我们可以使用 字体颜色,字体名称 and 字体大小 属性来格式化文本,如下例所示:
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打开工作表来验证:
文本对齐
XlsxWriter 的 Format 对象也可以使用对齐方法/属性创建。 align 属性可以有 左、右、中 and justify values.
例子
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”。注意 B 列的宽度设置为 30 设置列() 工作表对象的方法。
例子
格式对象也有 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。
单元格背景和前景色
Format 对象的两个重要属性是 bg_color and fg_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()
上面代码的结果是这样的: