如何基于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定时检查某个进程是否已经关闭的方法
May 20 Python
Python中的变量和作用域详解
Jul 13 Python
Tensorflow之构建自己的图片数据集TFrecords的方法
Feb 07 Python
python os.fork() 循环输出方法
Aug 08 Python
python网络编程之多线程同时接受和发送
Sep 03 Python
python 实现按对象传值
Dec 26 Python
Pytorch使用MNIST数据集实现CGAN和生成指定的数字方式
Jan 10 Python
python orm 框架中sqlalchemy用法实例详解
Feb 02 Python
Python实现粒子群算法的示例
Feb 14 Python
Python insert() / append() 用法 Leetcode实战演示
Mar 31 Python
pytorch中的numel函数用法说明
May 13 Python
python井字棋游戏实现人机对战
Apr 28 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
全局记录程序片段的运行时间 正确找到程序逻辑耗时多的断点
2011/01/06 PHP
php下载文件的代码示例
2012/06/29 PHP
PHP屏蔽过滤指定关键字的方法
2014/11/03 PHP
在html文件中也可以执行php语句的方法
2015/04/09 PHP
JavaScript中创建对象和继承示例解读
2014/02/12 Javascript
jQuery操作DOM之获取表单控件的值
2015/01/23 Javascript
javascript实现鼠标放上后下边对应内容变换的效果
2015/08/06 Javascript
javascript时间排序算法实现活动秒杀倒计时效果
2021/01/28 Javascript
Jquery跨域获得Json的简单实例
2016/05/18 Javascript
bootstrap suggest下拉框使用详解
2017/04/10 Javascript
vue如何通过id从列表页跳转到对应的详情页
2018/05/01 Javascript
VueJs组件之父子通讯的方式
2018/05/06 Javascript
利用python获得时间的实例说明
2013/03/25 Python
python使用urllib2模块获取gravatar头像实例
2013/12/18 Python
使用相同的Apache实例来运行Django和Media文件
2015/07/22 Python
Python实现将DOC文档转换为PDF的方法
2015/07/25 Python
Python IDLE 错误:IDLE''s subprocess didn''t make connection 的解决方案
2017/02/13 Python
利用django+wechat-python-sdk 创建微信服务器接入的方法
2019/02/20 Python
python3 property装饰器实现原理与用法示例
2019/05/15 Python
解决Pyinstaller 打包exe文件 取消dos窗口(黑框框)的问题
2019/06/21 Python
python中如何打包用户自定义模块
2020/09/23 Python
关于h5中的fetch方法解读(小结)
2017/11/15 HTML / CSS
Omio意大利:全欧洲低价大巴、火车和航班搜索和比价
2017/12/02 全球购物
三星法国官方网站:Samsung法国
2019/10/31 全球购物
Booking.com亚太地区:Booking.com APAC
2020/02/07 全球购物
如何打开WebSphere远程debug
2014/10/10 面试题
商务助理岗位职责
2013/11/13 职场文书
法人委托书范本
2014/04/04 职场文书
家长学校培训材料
2014/08/20 职场文书
党支部书记四风问题整改措施
2014/09/24 职场文书
社区务虚会发言材料
2014/10/20 职场文书
自主招生自荐信格式
2015/03/04 职场文书
2015年公共机构节能宣传周活动总结
2015/03/26 职场文书
红色革命电影观后感
2015/06/18 职场文书
关于python中readlines函数的参数hint的相关知识总结
2021/06/24 Python
Android RecyclerView实现九宫格效果
2022/06/28 Java/Android