python可以让你的报表做得又快又好,今天给大家分享一篇用python pywin32库创建word的方法。
代码所需要的第三方库为pywin32。
pip install pywin32
from win32com.client import Dispatch
import os
# 添加一段文字
def add_para(content, is_indent=True, is_alignment_center=False, is_bold=False, font_name='方正仿宋',
font_size=16, font_color=None):
'''
:param content: 写入word的内容
:param is_indent: 首行缩进2个字符
:param is_alignment_center: 居中对齐
:param is_bold: 字体加粗
:param font_name: 字体名称,比如方正仿宋、方正小标宋...
:param font_size: 字体大小,比如二号对应22磅,三号对应16磅
:param font_color: 字体颜色
'''
global para_index, start
selection = word.Selection
selection.Start = start
selection.InsertParagraph()
rng = selection.Range
rng.Text = content
para = doc.Paragraphs(para_index)
if is_indent:
para.CharacterUnitFirstLineIndent = 2 # 首行缩进2个字符
if is_alignment_center:
rng.ParagraphFormat.Alignment = 1 # 居中对齐
if is_bold:
rng.Font.Bold = True # 字体加粗
if font_color:
rng.Font.Color = font_color
rng.Font.Name = font_name
rng.Font.Size = font_size
para_index += 1
start = rng.End + 1
word = Dispatch('kwps.Application')
word.Visible = 1
# 新建一个word
doc = word.Documents.Add()
# 如果有设置好了的word模板,则调用下面的方法
# doc = word.Documents.Open('abosulte_path')
para_index = 1
start = 0
add_para(content='我是标题', is_alignment_center=True, font_name='方正小标宋', font_size=22)
add_para(content='一、我是方正黑体', font_name='方正黑体', font_size=16)
add_para(content='(一)我是方正楷体', font_name='方正楷体', font_size=16)
add_para(content='我是方正仿宋', font_name='方正仿宋', font_size=16,font_color=255)
doc_path = os.path.join(os.path.dirname(__file__),'xxx.docx')
doc.SaveAs(doc_path)
doc.Close()
word.Quit()
生成的效果如下,如果字体显示不对,可能是你的电脑没有这些字体,需要自己另行下载方正字体,将下载好的字体放入C:\Windows\Fonts文件夹中。
学会了pywin32库的使用,分分钟自动完成几千、几万字的材料不再是梦想。
在使用pywin32库过程中,需要经常查阅下面这两个手册。遇到问题,查阅手册,手撸代码。