python生成word文档初体验
2018-07-07 本文已影响0人
夜雨_87aa
程序效果展示:

本次是利用python-docx库来生成word文档,
最后如果你想要吧只做好的程序发给你身边没有安装python的朋友,可以用pyinstaller这个库把你的程序打包成.exe的程序
程序运行时带有cmd窗口如下:

pyinstaller -F test.py(写你的程序名称,需要在你的程序目录下执行)
去除黑框的用法:
pyinstaller -F -w test.py(写你的程序名称,需要在你的程序目录下执行)
注意细节:最后运行exe程序的时候需要把你电脑上C:\Program Files\Python36-32\Lib\site-packages\docx\templates中这个默认文档default.docx文件复制一份放到跟exe程序放到同一目录,否则会报错。
#创建并写入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 tkinter import *
import tkinter as tk
print(time.strftime('%Y%m%d%H%M%S'))
root=Tk()
#创建一个窗体程序
#窗体标题
root.title("word文档生成工具,请提前把图片上传至图片文件夹")
#窗体大小
root.geometry('450x100')
#判断图片文件是否存在
def panduan():
pass
#转换图片大小
def zhuanhuan():
pass
#生成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()
p.add_run('丙辰中秋,欢饮达旦,大醉,作此篇。兼怀子由。 ').bold = False
#正文,需要居中
p=file.add_paragraph()
p.add_run('高明月几时有,把酒问青天。 ').bold = True
p=file.add_paragraph()
p.add_run('不知天上宫阙,今夕是何年? ').bold = True
p=file.add_paragraph()
p.add_run('实我欲乘风归去,又恐琼楼玉宇,').bold = True
p=file.add_paragraph()
p.add_run('高处不胜寒。 ').bold = True
p=file.add_paragraph()
p.add_run('起舞弄清影,何似在人间!').bold = True
p=file.add_paragraph()
#空白
p=file.add_paragraph(' ')
p.add_run('转朱阁,低绮户,照无眠。 ').bold = True
p=file.add_paragraph()
p.add_run('不应有恨,何事长向别时圆?').bold = True
p=file.add_paragraph()
p.add_run('不人有悲欢离合,月有阴晴圆缺, ').bold = True
p.add_run('不此事古难全。 ').bold = True
p=file.add_paragraph()
p.add_run('不但愿人长久,千里共婵娟。 ').bold = True
#保存
#p.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER
#文本颜色
p=file.add_paragraph()
for i in range(1,1000):
color=(randint(0,255) for _ in range(3))
run=p.add_run('更多'+str(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
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()
此次写这个文档,只是刚了解到这个库,有啥不对的地方,还望多多指点。