python生成word文档初体验

2018-07-07  本文已影响0人  夜雨_87aa

程序效果展示:

图片.png

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

图片.png
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()

此次写这个文档,只是刚了解到这个库,有啥不对的地方,还望多多指点。

上一篇 下一篇

猜你喜欢

热点阅读