安裝python-docx:
pip install python-docx或者
pip install user python-docx
如果安裝失敗可以用pycharm安裝识腿,如果有錯誤,可以根據(jù)錯誤信息提示逐步解決嗅绸。
新建一個文檔:
document=docx.Document()
保存文檔:
document.save('新建文檔.docx')
插入一個標題:
p=document.add_heading('水調(diào)歌頭·明月幾時有',level=0)
level=0表示0級標題
level=1表示1級標題
level可以取值0到9
插入一個段落:
p=document.add_paragraph("[宋] 蘇軾")
向段落追加內(nèi)容:
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)里面有三個參數(shù),取值范圍均為0-255
設置字體大小:
run.font.size=Pt(24)
補充:獲取系統(tǒng)字體列表功能(這個需要安裝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)
通過上述內(nèi)容我們可以創(chuàng)建一個如下所示的文檔:
程序打開后的界面,以及生成的word文檔內(nèi)容
源碼展示:
#創(chuàng)建并寫入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
#-----------------獲取系統(tǒng)字體名稱--------------------------
ziti=[]
aaa =wx.App(False)
e = wx.FontEnumerator()
fontList = e.GetFacenames()
for i in fontList:
ziti.append(i)
#-----------------獲取系統(tǒng)字體名稱--------------------------
#---------生成word文檔功能------------------------------------
def makedoc():
#創(chuàng)建內(nèi)存中的word文檔對象
file=docx.Document(docx=os.path.join(os.getcwd(), 'default.docx'))
#寫入若干段落
#標題需要大號字體
p=file.add_heading('水調(diào)歌頭·明月幾時有',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('轉(zhuǎn)朱閣,低綺戶慷暂,照無眠聘殖。 ')
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文檔功能------------------------------------
#--------創(chuàng)建一個窗體程序,用于點擊按鈕來生成docx文檔------------
root=Tk()
#創(chuàng)建一個窗體程序
#窗體標題
root.title("word文檔生成工具副砍,請?zhí)崆鞍褕D片上傳至圖片文件夾")
#窗體大小
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()
#--------創(chuàng)建一個窗體程序衔肢,用于點擊按鈕來生成docx文檔------------
本內(nèi)容將持續(xù)更新,敬請期待豁翎。角骤。。。