如何基于python把文字图片写入word文档
作者:等风者 发布时间:2021-04-20 06:48:49
标签: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,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)
来源:https://www.cnblogs.com/sunflying/p/13382950.html
0
投稿
猜你喜欢
- asp+js做的一个dig程序中的投票(有的叫顶一下,踩一下),由于代码较长,只贴出核心部分:投票中的代码相关文章推荐:ajax +asp
- 前言本文提供将图片色彩转为黑白或者褐色风格。比较类似于我们在看动漫、影视作品中,当人物在回忆过程中,体现出来的画面一般都是黑白或者褐色的。环
- 描述log10() 方法返回以10为基数的x对数,x>0。语法以下是 log10() 方法的语法:import mathmath.lo
- 最近一段时间一直比较忙,已经有好几个月没有打理博客了。现将一个最近在项目中制作的一个菜单实例整理出来,共享一下。在后台或OA系统中最常用到的
- 本文实例讲述了python实现通过队列完成进程间的多任务功能。分享给大家供大家参考,具体如下:1.通过队列完成进程间的多任务import m
- 我们都知道Django rest framework这个库,默认只支持批量查看,不支持批量更新(局部或整体)和批量删除。下面我们来讨论这个问
- Python For 循环for 循环用于迭代序列(即列表,元组,字典,集合或字符串)。这与其他编程语言中的 for 关键字不太相似,而是更
- 那是一杠还是两杠呢?最简单的方式就是拿出钱包,掏出张“新”的50或100,翻到背面的银线上,就会发现两杠的符号。这个是以前跟同事在讨论是一杠
- 第一种import win32clipboardimport time#速度快 容易出错class niubi(): def l
- 今天偶尔在一个学习网站技术的地方看到一个教程,关于html代码的,刚看到咱常用到的视频播放器html标签Object,平时用到他的时候都是为
- django中form表单设置action后,点提交按钮是跳转到action页面的,比如设置action为login,网址为192.168.
- 1. 前台templates/upload/upload.html<!DOCTYPE html><html lang=&q
- 第七步: 在自定义分页的Repeater 里添加排序功能现在已经完成了自定义分页,我们再来添加排序功能。ProductsBLL类的GetPr
- 1、安装pip install djangorestframework2、创建项目及应用创建项目创建应用目录结构如图3、设置settings
- PHP attributes() 函数实例返回 XML 的 body 元素的属性和值:<?php $note=<<<
- 本文实例讲述了Python编程生成随机用户名及密码的方法。分享给大家供大家参考,具体如下:方案一:import randomglobal u
- 任何东西只要跟Google有关就总能给我们带来点儿惊喜,2008年9月2日发布的Google Chrome浏览器也不例外。Google Ch
- 我们想要知道数目的总和,只要通过+就能实现,这是我们在做题上经常用到的符号。但是在python中不能直接使用,我们需要借助一些代码或者函数帮
- 1.用于简单的对象检测、跟踪2.简单前背景分割#encoding:utf-8#黄色检测import numpy as npimport ar
- 如下所示:#!/usr/bin/python2.6 # -*- coding: utf-8 -*- import time cl