如何设置表格单元格的颜色(TableStyle)
发布时间:2023-12-24 10:23:44
表格单元格的颜色可以通过使用TableStyle类来设置。TableStyle类可以设置表格的整体样式,包括表头、行、列以及单个单元格的样式。
TableStyle类有一个属性cell(),可以用来设置单个单元格的样式。通过设置cell()的各种参数,可以控制单元格的背景颜色、边框颜色、字体颜色等。
下面是一个使用TableStyle设置表格单元格颜色的示例:
from docx.enum.table import WD_ALIGN_VERTICAL, WD_ALIGN_VERTICAL
from docx.shared import RGBColor
from docx.table import Table
from docx.oxml.ns import nsdecls
from docx.oxml import parse_xml
def set_cell_color(cell, color):
"""设置单元格背景颜色"""
shading_elm = parse_xml(r'<w:shd {} w:fill="{:02X}{:02X}{:02X}"/>'.format(
nsdecls('w'), *color.rgb))
cell._tc.get_or_add_tcPr().append(shading_elm)
doc = Document()
# 创建一个带有3行3列的表格
table = doc.add_table(rows=3, cols=3)
# 设置表格整体样式
table.style = 'Table Grid'
# 设置表头样式( 行)
header_cells = table.rows[0].cells
for cell in header_cells:
cell.paragraphs[0].alignment = WD_ALIGN_PARAGRAPH.CENTER
cell.vertical_alignment = WD_ALIGN_VERTICAL.CENTER
cell.paragraphs[0].style = 'Heading3'
# 设置数据行样式
data_rows = table.rows[1:3]
for row in data_rows:
for cell in row.cells:
cell.paragraphs[0].alignment = WD_ALIGN_PARAGRAPH.CENTER
cell.vertical_alignment = WD_ALIGN_VERTICAL.CENTER
# 设置第2行第2列单元格颜色为红色
cell = table.cell(2, 2)
set_cell_color(cell, RGBColor(255, 0, 0))
# 设置第3行第3列单元格背景颜色为蓝色
cell = table.cell(3, 3)
set_cell_color(cell, RGBColor(0, 0, 255))
doc.save('table.docx')
在上面的示例中,首先导入了所需的模块和类。然后定义了一个set_cell_color()函数,用来设置单元格的背景颜色。接着创建一个Document对象,并通过add_table()方法创建一个带有3行3列的表格。然后设置了表格的整体样式为"Table Grid",并设置了表头的样式。之后通过遍历表格的数据行,设置了数据行的样式。最后通过调用set_cell_color()函数,设置了第2行第2列单元格的颜色为红色,和第3行第3列单元格的颜色为蓝色。最后保存文档。
通过上述示例,可以看到如何使用TableStyle类来设置表格的单元格颜色。可以根据实际需求来设置不同单元格的颜色,以便美化表格。
