首页 > 基础资料 博客日记
python-读写docx文档-插入图片+修改格式
2024-10-02 01:00:13基础资料围观84次
这篇文章介绍了python-读写docx文档-插入图片+修改格式,分享给大家做个参考,收藏Java资料网收获更多编程知识
环境:
python 3.9.13,docx 1.1.0
之前写过:
python读写word文档-docx和docx2txt包使用实例-CSDN博客
https://blog.csdn.net/pxy7896/article/details/107160513
问题描述
同事有一个word模板,需要在某个位置插入带背景色的序列和几张图片。位置可以通过唯一关键字确定。
实现效果
插入的内容如下图所示:(已隐藏序列信息)
解决方案
使用docx包,搜索关键字,然后在关键字后插入拼接好的序列(同时设置背景色),随后逐张插入图片。
# _*_ coding:utf-8 _*_
from docx import Document
from docx.shared import Inches, Cm
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.enum.text import WD_COLOR_INDEX
def process(name, seq, in_file, out_file, imgs):
document = Document(in_file)
keyword = "蛋白名称"
# 遍历,查找关键词
for paragraph in document.paragraphs:
if keyword in paragraph.text:
# 计算插入位置
pos = paragraph.text.find(keyword) + len(keyword)
# 分割现有文本
before_text = paragraph.text[:pos]
after_text = paragraph.text[pos:]
# 设置段落文本为分割后的文本
paragraph.text = before_text
# 插入header
run = paragraph.add_run("\n>" + name + "\n")
run = paragraph.add_run("氨基酸序列\n" + seq + "\n")
# 关于背景色看下面的链接
# https://python-docx.readthedocs.io/en/latest/dev/analysis/features/text/font-highlight-color.html?highlight=highlight
run.font.highlight_color = WD_COLOR_INDEX.TURQUOISE
#run = paragraph.add_run(after_text)
# 插入图片
run = paragraph.add_run()
for img in imgs:
run.add_picture(img, width=Cm(12))
# 整段对齐
paragraph.alignment = WD_PARAGRAPH_ALIGNMENT.LEFT
# 跳出
break
document.save(out_file)
if __name__ == "__main__":
name = "PDP1-RD-CDS"
seq = "M***V*"
in_file = "模板.docx"
out_file = "输出.docx"
imgs = ['1.png', '2.png']
process(name, seq, in_file, out_file, imgs)
文章来源:https://blog.csdn.net/pxy7896/article/details/142652256
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签: