word python docvariable_python-docx入门体验001

安装python-docx:

pip install python-docx或者

pip install user python-docx

如果安装失败可以用pycharm安装,如果有错误,可以根据错误信息提示逐步解决。

新建一个文档:

document=docx.Document()

保存文档:

document.save('新建文档.docx')

插入一个标题:

p=document.add_heading('水调歌头·明月几时有',level=0)

level=0表示0级标题

level=1表示1级标题

level可以取值0到9

插入一个段落:

p=document.add_paragraph("[宋] 苏轼")

向段落追加内容:

run=p.add_run('[宋] 苏轼 ')

插入图片:

document.add_picture('1.jpg', width=Inches(8))

width=Inches(8)设置图片大小

设置字体名称:

run.font.name="宋体"

run._element.rPr.rFonts.set(qn('w:eastAsia'),"宋体")

这两个都设置字体名称才会生效

设置字体颜色:

run.font.color.rgb=RGBColor(0,1,2)

RGBColor(0,1,2)里面有三个参数,取值范围均为0-255

设置字体大小:

run.font.size=Pt(24)

补充:获取系统字体列表功能(这个需要安装wxpython库,

安装方法:pip install wxpython

import wx

ziti=[]

def ziti-name():

aaa =wx.App(False)

e = wx.FontEnumerator()

fontList = e.GetFacenames()

for i in fontList:

ziti.append(i)

通过上述内容我们可以创建一个如下所示的文档:

程序打开后的界面,以及生成的word文档内容

图片.png

图片.png

源码展示:

#创建并写入word文档

import docx

import os

import time

from random import randint

from docx.enum.text import WD_ALIGN_PARAGRAPH

from docx.shared import Inches

from docx.shared import RGBColor

from docx.shared import Pt

from docx.oxml.ns import qn

from tkinter import *

import tkinter as tk

import wx

from wx import FontEnumerator

import os

#-----------------获取系统字体名称--------------------------

ziti=[]

aaa =wx.App(False)

e = wx.FontEnumerator()

fontList = e.GetFacenames()

for i in fontList:

ziti.append(i)

#-----------------获取系统字体名称--------------------------

#---------生成word文档功能------------------------------------

def makedoc():

#创建内存中的word文档对象

file=docx.Document(docx=os.path.join(os.getcwd(), 'default.docx'))

#写入若干段落

#标题需要大号字体

p=file.add_heading('水调歌头·明月几时有',level=0)

#作者名称,需要小标题

p=file.add_paragraph("[宋] 苏轼")

#备注,需要灰色字体。

p=file.add_paragraph()

run=p.add_run('丙辰中秋,欢饮达旦,大醉,作此篇。兼怀子由。 ')

run.bold = False

run.font.name="hakuyoxingshu7000"

run._element.rPr.rFonts.set(qn('w:eastAsia'), "hakuyoxingshu7000")

run.font.size=Pt(24)

run.font.color.rgb=RGBColor(10,20,255)

#正文,需要居中

p=file.add_paragraph()

run=p.add_run('明月几时有,把酒问青天。 ')

run.bold = True

run.font.name="hakuyoxingshu7000"

run._element.rPr.rFonts.set(qn('w:eastAsia'), "hakuyoxingshu7000")

run.font.size=Pt(24)

p=file.add_paragraph()

run=p.add_run('不知天上宫阙,今夕是何年? ')

run.bold = True

run.font.name="hakuyoxingshu7000"

run._element.rPr.rFonts.set(qn('w:eastAsia'), "hakuyoxingshu7000")

run.font.size=Pt(24)

p=file.add_paragraph()

run=p.add_run('实我欲乘风归去,又恐琼楼玉宇,')

run.bold = True

run.font.name="hakuyoxingshu7000"

run._element.rPr.rFonts.set(qn('w:eastAsia'), "hakuyoxingshu7000")

run.font.size=Pt(24)

p=file.add_paragraph()

run=p.add_run('高处不胜寒。 ')

run.bold = True

run.font.name="hakuyoxingshu7000"

run._element.rPr.rFonts.set(qn('w:eastAsia'), "hakuyoxingshu7000")

run.font.size=Pt(24)

p=file.add_paragraph()

run=p.add_run('起舞弄清影,何似在人间!')

run.bold = True

run.font.name="hakuyoxingshu7000"

run._element.rPr.rFonts.set(qn('w:eastAsia'), "hakuyoxingshu7000")

run.font.size=Pt(24)

p=file.add_paragraph()

#空白

p=file.add_paragraph(' ')

run=p.add_run('转朱阁,低绮户,照无眠。 ')

run.bold = True

run.font.name="hakuyoxingshu7000"

run._element.rPr.rFonts.set(qn('w:eastAsia'), "hakuyoxingshu7000")

run.font.size=Pt(24)

p=file.add_paragraph()

run=p.add_run('不应有恨,何事长向别时圆?')

run.bold = True

run.font.name="hakuyoxingshu7000"

run._element.rPr.rFonts.set(qn('w:eastAsia'), "hakuyoxingshu7000")

run.font.size=Pt(24)

p=file.add_paragraph()

run=p.add_run('不人有悲欢离合,月有阴晴圆缺, ')

run.bold = True

run.font.name="hakuyoxingshu7000"

run._element.rPr.rFonts.set(qn('w:eastAsia'), "hakuyoxingshu7000")

run.font.size=Pt(24)

run=p.add_run('不此事古难全。 ')

run.bold = True

run.font.name="hakuyoxingshu7000"

run._element.rPr.rFonts.set(qn('w:eastAsia'), "hakuyoxingshu7000")

run.font.size=Pt(24)

p=file.add_paragraph()

run=p.add_run('不但愿人长久,千里共婵娟。 ')

run.bold = True

run.font.name="hakuyoxingshu7000"

run._element.rPr.rFonts.set(qn('w:eastAsia'), "hakuyoxingshu7000")

run.font.size=Pt(24)

#保存

#p.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER

#文本颜色

p=file.add_paragraph()

for i in range(0,len(ziti)):

color=(randint(0,255) for _ in range(3))

run=p.add_run('人有悲欢离合,月有阴晴圆缺, \n')

run.bold = True

run.font.name=ziti[i]

run.font.size=Pt(24)

run._element.rPr.rFonts.set(qn('w:eastAsia'), ziti[i])

run.font.color.rgb=RGBColor(*color)

file.add_picture('1.jpg', width=Inches(8))

name=str(time.strftime('%Y%m%d%H%M%S'))+"文档.docx"

file.save(name)

if var.get()==1:

os.startfile(name)

else:

pass

#---------生成word文档功能------------------------------------

#--------创建一个窗体程序,用于点击按钮来生成docx文档------------

root=Tk()

#创建一个窗体程序

#窗体标题

root.title("word文档生成工具,请提前把图片上传至图片文件夹")

#窗体大小

root.geometry('450x100')

#用于判断复选框是否被选中

var=tk.IntVar()

#复选框

condition=Checkbutton(root, text="生成文档后确定是否打开文档", variable=var)

condition.grid(row=0,column=1,pady=10)

#按钮

button=Button(root,width=30,text='点击开始生成',height=3,command=makedoc)

button.grid(row=0,column=0,pady=10,padx=10)

mainloop()

#--------创建一个窗体程序,用于点击按钮来生成docx文档------------

本内容将持续更新,敬请期待。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值