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


Posted in Python onJuly 31, 2020

安装代码

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,style='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)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现给qq邮箱发送邮件的方法
May 28 Python
python3.5 tkinter实现页面跳转
Jan 30 Python
Python返回数组/List长度的实例
Jun 23 Python
Python列表常见操作详解(获取,增加,删除,修改,排序等)
Feb 18 Python
python七夕浪漫表白源码
Apr 05 Python
使用pyhon绘图比较两个手机屏幕大小(实例代码)
Jan 03 Python
Python list运算操作代码实例解析
Jan 20 Python
python剪切视频与合并视频的实现
Mar 03 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
Mar 11 Python
Python参数传递及收集机制原理解析
Jun 05 Python
Python面向对象特殊属性及方法解析
Sep 16 Python
python解包概念及实例
Feb 17 Python
django教程如何自学
Jul 31 #Python
Python实现一个优先级队列的方法
Jul 31 #Python
django表单中的按钮获取数据的实例分析
Jul 31 #Python
pycharm中使用request和Pytest进行接口测试的方法
Jul 31 #Python
django创建css文件夹的具体方法
Jul 31 #Python
Selenium之模拟登录铁路12306的示例代码
Jul 31 #Python
python的flask框架难学吗
Jul 31 #Python
You might like
php版微信公众平台开发之验证步骤实例详解
2016/09/23 PHP
java script编程起步(第三课)
2007/01/10 Javascript
初窥JQuery(二)事件机制(2)
2010/12/06 Javascript
jQuery学习总结之元素的相对定位和选择器(持续更新)
2011/04/26 Javascript
Jquery 复选框取值兼容FF和IE8(测试有效)
2013/10/29 Javascript
全面理解面向对象的 JavaScript(来自ibm)
2013/11/10 Javascript
页面js遇到乱码问题的解决方法是和无法转码的情况
2014/04/30 Javascript
javascript限制用户只能输汉字中文的方法
2014/11/20 Javascript
javascript实时获取鼠标坐标值并显示的方法
2015/04/30 Javascript
基于OL2实现百度地图ABCD marker的效果
2015/10/01 Javascript
js HTML5 Ajax实现文件上传进度条功能
2016/02/13 Javascript
js动态生成form 并用ajax方式提交的实现方法
2016/09/09 Javascript
原生JavaScript实现Ajax异步请求
2017/11/19 Javascript
Electron-vue脚手架改造vue项目的方法
2018/10/22 Javascript
9102年webpack4搭建vue项目的方法步骤
2019/02/20 Javascript
如何在Angular8.0下使用ngx-translate进行国际化配置
2019/07/24 Javascript
JS实现鼠标按下拖拽效果
2020/07/23 Javascript
[02:15]2014DOTA2国际邀请赛 专访LGD.lin小兔子是大腿
2014/07/14 DOTA
[01:06]欢迎来到上海,TI9
2018/08/26 DOTA
如何在Python函数执行前后增加额外的行为
2016/10/20 Python
Python requests发送post请求的一些疑点
2018/05/20 Python
基于Pandas读取csv文件Error的总结
2018/06/15 Python
Python实现的简单排列组合算法示例
2018/07/04 Python
pycharm new project变成灰色的解决方法
2019/06/27 Python
英国街头品牌:Bee Inspired Clothing
2018/02/12 全球购物
卫校毕业生自我鉴定
2013/10/31 职场文书
医院总经理职责
2013/12/26 职场文书
仓库组长岗位职责
2014/01/29 职场文书
计算机专业毕业生自荐信范文
2014/03/06 职场文书
《青山处处埋忠骨》教学反思
2014/04/22 职场文书
爱牙日活动总结
2014/08/29 职场文书
尊师重教演讲稿
2014/09/04 职场文书
火锅店的开业营销方案范本!
2019/07/05 职场文书
nginx搭建图片服务器的过程详解(root和alias的区别)
2021/03/31 Servers
利用Java设置Word文本框中的文字旋转方向的实现方法
2021/06/28 Java/Android
Golang MatrixOne使用介绍和汇编语法
2022/04/19 Golang