如何基于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中的赋值和深浅拷贝
Aug 15 Python
python实现字符串和字典的转换
Sep 29 Python
Python使用sorted对字典的key或value排序
Nov 15 Python
python使用插值法画出平滑曲线
Dec 15 Python
python批量从es取数据的方法(文档数超过10000)
Dec 27 Python
python将pandas datarame保存为txt文件的实例
Feb 12 Python
python的debug实用工具 pdb详解
Jul 12 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
Jan 14 Python
python和php哪个更适合写爬虫
Jun 22 Python
pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)
Jun 24 Python
Pandas之缺失数据的实现
Jan 06 Python
pandas求平均数和中位数的方法实例
Aug 04 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
虹吸式咖啡探讨–研磨
2021/03/03 冲泡冲煮
从Web查询数据库之PHP与MySQL篇
2009/09/25 PHP
php smarty模版引擎中变量操作符及使用方法
2009/12/11 PHP
php 记录进行累加并显示总时长为秒的结果
2011/11/04 PHP
解析CodeIgniter自定义配置文件
2013/06/18 PHP
Smarty变量调节器失效的解决办法
2014/08/20 PHP
PHP传值到不同页面的三种常见方式及php和html之间传值问题
2015/11/19 PHP
php文件操作之文件写入字符串、数组的方法分析
2019/04/15 PHP
JQuery跨Iframe选择实现代码
2010/08/19 Javascript
基于Unit PNG Fix.js有时候在ie6下不正常的解决办法
2013/06/26 Javascript
Node.js文件操作详解
2014/08/16 Javascript
alert出数组中的随即值代码
2014/09/25 Javascript
angularjs学习笔记之三大模块(modal,controller,view)
2015/09/26 Javascript
Bootstrap表单布局样式代码
2016/05/31 Javascript
设置jquery UI 控件的大小方法
2016/12/12 Javascript
百度地图JavascriptApi Marker平滑移动及车头指向行径方向
2017/03/13 Javascript
Form表单上传文件(type="file")的使用
2017/08/03 Javascript
Python创建普通菜单示例【基于win32ui模块】
2018/05/09 Python
python查看文件大小和文件夹内容的方法
2019/07/08 Python
Python查找不限层级Json数据中某个key或者value的路径方式
2020/02/27 Python
Python3 利用face_recognition实现人脸识别的方法
2020/03/13 Python
Python实现的北京积分落户数据分析示例
2020/03/27 Python
python matplotlib:plt.scatter() 大小和颜色参数详解
2020/04/14 Python
DRF使用simple JWT身份验证的实现
2021/01/14 Python
深入理解css属性的选择对动画性能的影响
2016/04/20 HTML / CSS
基于html5 canvas实现漫天飞雪效果实例
2014/09/10 HTML / CSS
加拿大最大的五金、家居装修和园艺产品商店:RONA
2017/01/27 全球购物
Merrell迈乐澳大利亚网站:购买户外登山鞋
2017/05/28 全球购物
SHEIN台湾:购买最新流行女装服饰
2019/05/18 全球购物
怎样声明子类
2013/07/02 面试题
不同浏览器创建XMLHttpRequest方法有什么不同
2014/11/17 面试题
师说教学反思
2014/02/07 职场文书
个人授权委托书模板
2014/09/14 职场文书
2014年国庆节庆祝建国65周年比赛演讲稿
2014/09/21 职场文书
工作经历证明范本
2015/06/15 职场文书
Windows Server 2019 安装DHCP服务及相关配置
2022/04/28 Servers