话说实例30中填写的表格太丑了(下图),老板很生气,后果很严重。这次我们就来修饰美化一下。
有几个要求:
最后一行中,“总数”两个字要加粗
最后一行的行高要调大一点,现在这样扁扁的,难看
最后一行那几个空单元格有框线,太碍眼,得去掉
各单元格水平和垂直方向都要居中对齐
数量列≥85的,设置颜色填充
搞清楚要求之后,就可以开工了。由于docx
模块没有比较友好的函数可直接调用,如下边框处理函数是从其他大神那里copy来的,我自己也看不大明白,只要会使用,能解决问题就成,这也是我们学习编程的初衷。有轮子就用,不必认死扣,非要成为轮子制造专家。我在如下函数中增加了使用说明,你也可以直接复制如下函数使用。其中,传入参数有cell, 即单元格;top指上边框;bottom指下边框;start指左边框;end指右边框。"sz"指线的粗细程度(取值在2到96之间);"val"指线型,比如单线,虚线等;"color"指颜色。"space"指间隔,一般不设置,设置的值大于0会导致线错开;"shadow"指边框阴影。下图是space为0和10的对比。
#单元格边框设置函数
from docx.table import _Cell
from docx.oxml import OxmlElement
from docx.oxml.ns import qn
def Set_cell_border(cell: _Cell, **kwargs):
""" 设置单元格边框函数 使用方法: Set_cell_border( cell, top={"sz": 12, "val": "single", "color": "#FF0000", "space": "0"}, bottom={"sz": 12, "color"