#单元格边框设置函数
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": "#00FF00", "val": "single"},
start={"sz": 24, "val": "dashed", "shadow": "true"},
end={"sz": 12, "val": "dashed"},
)
传入参数有cell, 即单元格;top指上边框;bottom指下边框;start指左边框;end指右边框。
"sz"指线的粗细程度;"val"指线型,比如单线,虚线等;"color"指颜色,颜色编码可百度;
"space"指间隔,一般不设置,设置的值大于0会导致线错开;"shadow"指边框阴影
"""
tc = cell._tc
tcPr = tc.get_or_add_tcPr()
tcBorders = tcPr.first_child_found_in("w:tcBorders")
if tcBorders is None:
tcBorders = OxmlElement('w:tcBorders')
tcPr.append(tcBorders)
for edge in ('start', 'top', 'end', 'bottom', 'insideH', 'insideV'):
edge_data = kwargs.get(edge)
if edge_data:
tag = 'w:{}'.format(edge)
element = tcBorders.find(qn(tag))
if element is None:
element = OxmlElement(tag)
tcBorders.append(element)
for key in ["sz", "val", "color", "space", "shadow"]:
if key in edge_data:
element.set(qn('w:{}'.format(key)), str(edge_data[key]))
#定义单元格填充颜色函数
from docx.oxml.ns import nsdecls
from docx.oxml import parse_xml
def Set_Background_Color(cell,rgbColor):
shading_elm = parse_xml(r'<w:shd {} w:fill="{color_value}"/>'.format(nsdecls('w'),color_value = rgbColor)) #固定写法,照抄即可
cell._tc.get_or_add_tcPr().append(shading_elm)
from docx.enum.text import WD_ALIGN_PARAGRAPH #设置水平居中对齐需要用到的库
from docx.enum.table import WD_ALIGN_VERTICAL #设置垂直居中对齐需要用到的库
from docx.shared import Cm # 长度单位(厘米cm用到的库)
from docx import Document
doc = Document("收货记录.docx") #打开word文件
table= doc.tables[0]
max_row = len(table.rows) #获取表格总行数
#1.最后一行中,“总数”两个字要加粗
run = table.cell(max_row-1,4).paragraphs[0].runs[0] # 获取最后一行第五列对应单元格中的文字块,即“总数”字样所在单元格
run.font.bold = True #将文字块设置为粗体
#2.最后一行的行高要调大一点,现在这样扁扁的,难看
table.rows[max_row-1].height = Cm(1) # 将最后一行的行高设置为1厘米
#3.最后一行那几个空单元格有框线,太碍眼,得去掉,将总数及左边两个cell左边框和下边框设成白色
for i in range(3):
cell = table.cell(max_row-1,i)
Set_cell_border(
cell,
bottom={"color": "#FFFFFF"},
start={"color": "#FFFFFF" },
end={"color": "#FFFFFF"}
)
cell_1 = table.cell(max_row-1,3)
Set_cell_border(cell_1,start={"color": "#FFFFFF" },bottom={"color": "#FFFFFF"})
cell_2 = table.cell(max_row-1,6)
Set_cell_border(cell_2,end={"color": "#FFFFFF" },bottom={"color": "#FFFFFF"})
#4.各单元格水平和垂直方向都要居中对齐
for row in range(1,max_row):
for col in range(len(table.columns)):
table.cell(row,col).paragraphs[0].alignment = WD_ALIGN_PARAGRAPH.CENTER
table.cell(row,col).vertical_alignment = WD_ALIGN_VERTICAL.CENTER
#5.数量列≥85的,底色设置为橙色
qty = [] #存储数量信息
#读取第二行到29行,第2,3列中的数据
for i in range(1,max_row-1):
qty_info = table.rows[i].cells[5].text #cells[5]指表格第6列
qty.append(int(qty_info))
#将数量≥85的单元格填色
row=1 #行计数器
for i in qty:
if i>=85:
cell = table.cell(row,5) #第6列数据为数量,列索引是5
Set_Background_Color(cell,"98F5FF") #填充颜色,"98F5FF"是蓝色的编码
row+=1 #跳转到下一行
doc.save("收货记录-整理.docx")
没有合适的资源?快使用搜索试试~ 我知道了~
Python实例-毕业项目设计:自动化文档处理,Word表格编辑与美化
共9个文件
png:4个
docx:2个
py:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 83 浏览量
2024-12-16
11:58:03
上传
评论
收藏 218KB ZIP 举报
温馨提示
该Python实例提供了一个自动化处理Word文档的解决方案,特别适合需要对Word文档中的表格进行编辑和美化的毕业设计项目。实例中包含了单元格边框设置、单元格填充颜色调整、文本格式调整以及单元格内容对齐等功能。适用于计算机科学、信息技术等专业的学生,以及需要快速编辑和格式化大量Word文档的办公人员。使用场景包括但不限于毕业设计文档的整理、项目报告的格式化以及日常办公文档的自动化处理。通过这个实例,用户可以学习如何使用Python库操作Word文档,实现文档的自动化编辑和美化。
资源推荐
资源详情
资源评论
收起资源包目录
Python实例-毕业设计-用Python设置Word文档里表格的格式.zip (9个子文件)
Python实例-毕业设计-用Python设置Word文档里表格的格式
08.ipynb 11KB
08.py 4KB
images
face.PNG 68KB
space.PNG 27KB
result-actual.PNG 31KB
qrcode_for_gh_a58b3c4996c0_258 (3).jpg 27KB
result.PNG 56KB
收货记录-整理.docx 19KB
收货记录.docx 22KB
共 9 条
- 1
资源评论
财云量化
- 粉丝: 6796
- 资源: 1048
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 第七章:循环控制语句 包含循环写星星 循环写乘法表 循环累加计算
- 图神经网络进行视频字幕的动作知识
- BLE蓝牙单片机CC2540、CC2541带OSAL操作系统的例程-蓝牙从机广播功率配置修改.zip
- BLE蓝牙单片机CC2540、CC2541带OSAL操作系统的例程-看门狗WachDog例程.zip
- chapter7-Pandas数据分析实战.zip
- Python电影票售票系统
- BLE蓝牙单片机CC2540、CC2541带OSAL操作系统的例程-封装蓝牙模块AT指令.zip
- BLE蓝牙单片机CC2540、CC2541带OSAL操作系统的例程-对蓝牙传输的数据进行加密、解密传输.zip
- BLE蓝牙单片机CC2540、CC2541带OSAL操作系统的例程-串口双工收发.zip
- BLE蓝牙单片机CC2540、CC2541带OSAL操作系统的例程-按键操作.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功