微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何基于python把文字图片写入word文档

这篇文章主要介绍了如何基于python把文字写入word文档,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

安装代码

pip install python-docx

1.批量化往word文件添加大批量重复的数据

from docx import Document from docx.enum.text import WD_ALIGN_ParaGRAPH from docx.shared import Pt #磅数 from docx.oxml.ns import qn #中文格式 #以上是docx库中需要用到的部分 import time price = input('请输入今日价格:') company_list = ['客户1','客户2','客户3','客户4','客户5','客户6'] today1 = time.strftime("%Y-%m-%d",time.localtime()) today2 = time.strftime("%Y/%m/%d",time.localtime()) today = time.strftime("%Y{y}%m{m}%d{d}",time.localtime()).format(y='年',m='月',d='日') for i in company_list: document = Document() #设置文档的基础字体中文 document.styles['normal'].font.name = u'宋体' #设置文档的基础字体西文 document.styles['normal'].element.rPr.rFonts.set(qn('w:eastAsia'),u'宋体') # 初始化建立第一个自然段 pl = document.add_paragraph() #对齐方式为居中,没有这句话认左对齐 pl.alignment = WD_ALIGN_ParaGRAPH.CENTER run1 = pl.add_run('关于下达%s产品价格的通知'%(today)) run1.font.name = '微软雅黑' run1.element.rPr.rFonts.set(qn('w:eastAsia'),u'微软雅黑') run1.font.size = Pt(21) #是否加粗 run1.font.bold = True #前后距离5磅 pl.space_before = Pt(5) pl.space_after = Pt(5) # 初始化建立第二个自然段 p2 = document.add_paragraph() run2 = p2.add_run(i+":") #对客户的称呼 run2.font.name = '仿宋_GB2312' run2.element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋_GB2312') run2.font.size = Pt(16) # 是否加粗 run2.font.bold = True # 初始化建立第三个自然段 p3 = document.add_paragraph() run3 = p3.add_run(" 根据公司安排,为提供优质客户服务,我单位拟定了今日黄金价格为%s元,特此通知."%price) # 对客户的称呼 run3.font.name = '仿宋_GB2312' run3.element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋_GB2312') run3.font.size = Pt(16) # 是否加粗 run3.font.bold = True # 初始化建立第四个自然段 p4 = document.add_paragraph() # 对齐方式为居中,没有这句话认左对齐 p4.alignment = WD_ALIGN_ParaGRAPH.CENTER run4 = p4.add_run("( 联系人:小杨 电话:18888888888)") # 对客户的称呼 run4.font.name = '仿宋_GB2312' run4.element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋_GB2312') run4.font.size = Pt(16) # 是否加粗 run4.font.bold = True document.save('%s-价格通知.docx'% i)

2.添加图片

from docx import Document from docx.enum.text import WD_ALIGN_ParaGRAPH from docx.shared import Pt #磅数 from docx.oxml.ns import qn #中文格式 from docx.shared import Inches #图片尺寸 #以上是docx库中需要用到的部分 import time price = input('请输入今日价格:') company_list = ['客户1','客户2','客户3','客户4','客户5','客户6'] today = time.strftime("%Y{y}%m{m}%d{d}",time.localtime()).format(y='年',m='月',d='日') for i in company_list: document = Document() # 设置文档的基础字体中文 document.styles['normal'].font.name = u'宋体' # 设置文档的基础样式 document.styles['normal'].element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体') document.add_picture('banner.jpg',width=Inches(6)) # 初始化建立第一个自然段 pl = document.add_paragraph() # 对齐方式为居中,没有这句话认左对齐 pl.alignment = WD_ALIGN_ParaGRAPH.CENTER run1 = pl.add_run('关于下达%s产品价格的通知' % (today)) run1.font.name = '微软雅黑' run1.element.rPr.rFonts.set(qn('w:eastAsia'), u'微软雅黑') run1.font.size = Pt(21) # 是否加粗 run1.font.bold = True # 前后距离5磅 pl.space_before = Pt(5) pl.space_after = Pt(5) # 初始化建立第二个自然段 p2 = document.add_paragraph() run2 = p2.add_run(i + ":") # 对客户的称呼 run2.font.name = '仿宋_GB2312' run2.element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋_GB2312') run2.font.size = Pt(16) # 是否加粗 run2.font.bold = True # 初始化建立第三个自然段 p3 = document.add_paragraph() run3 = p3.add_run(" 根据公司安排,为提供优质客户服务,我单位拟定了今日黄金价格为%s元,特此通知." % price) # 对客户的称呼 run3.font.name = '仿宋_GB2312' run3.element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋_GB2312') run3.font.size = Pt(16) # 是否加粗 run3.font.bold = True table = document.add_table(rows=3,cols=3,Table Grid') table.cell(0,0).merge(table.cell(0,2)) table_run1 = table.cell(0,0).paragraphs[0].add_run('xx产品报价表') table_run1.font.name = u'隶书' table_run1.element.rPr.rFonts.set(qn('w:eastAsia'),u'隶书') table.cell(1,0).text = '日期' table.cell(1, 1).text = '价格' table.cell(1, 2).text = '备注' table.cell(2, 0).text = today table.cell(2, 1).text = str(price) table.cell(2, 2).text = '' # 初始化建立第四个自然段 p4 = document.add_paragraph() # 对齐方式为居中,没有这句话认左对齐 p4.alignment = WD_ALIGN_ParaGRAPH.CENTER run4 = p4.add_run(" (联系人:小杨 电话:18888888888)") # 对客户的称呼 run4.font.name = '仿宋_GB2312' run4.element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋_GB2312') run4.font.size = Pt(16) # 是否加粗 run4.font.bold = True #插入分页符 document.add_page_break() p5 = document.add_paragraph() run4 = p5.add_run('此处是广告') document.save('%s-价格通知.docx' % i)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐