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