使用python-docx生成Word文档

作者: 码农小杨 | 来源:发表于2017-02-17 14:49 被阅读6848次

学会来使用python操作数据表和PDF,今天我们尝试下使用python操作Word文档。

首先是安装python-docx:(centos环境)

pip  install python-docx

基本方法使用:

from  docx import  Document
from  docx.shared import  Pt
from  docx.oxml.ns import  qn
from docx.shared import Inches

#打开文档
document = Document()

#加入不同等级的标题
document.add_heading('Document Title',0)
document.add_heading(u'二级标题',1)
document.add_heading(u'二级标题',2)

#添加文本
paragraph = document.add_paragraph(u'添加了文本')
#设置字号
run = paragraph.add_run(u'设置字号')
run.font.size=Pt(24)

#设置字体
run = paragraph.add_run('Set Font,')
run.font.name='Consolas'

#设置中文字体
run = paragraph.add_run(u'设置中文字体,')
run.font.name=u'宋体'
r = run._element
r.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')

#设置斜体
run = paragraph.add_run(u'斜体、')
run.italic = True

#设置粗体
run = paragraph.add_run(u'粗体').bold = True

#增加引用
document.add_paragraph('Intense quote', style='Intense Quote')

#增加有序列表
document.add_paragraph(
    u'有序列表元素1',style='List Number'
)
document.add_paragraph(
    u'有序列别元素2',style='List Number'
)

#增加无序列表
document.add_paragraph(
    u'无序列表元素1',style='List Bullet'
)
document.add_paragraph(
    u'无序列表元素2',style='List Bullet'
)

#增加图片(此处使用相对位置)
document.add_picture('jdb.jpg',width=Inches(1.25))

#增加表格
table = document.add_table(rows=3,cols=3)
hdr_cells=table.rows[0].cells
hdr_cells[0].text="第一列"
hdr_cells[1].text="第二列"
hdr_cells[2].text="第三列"

hdr_cells = table.rows[1].cells
hdr_cells[0].text = '2'
hdr_cells[1].text = 'aerszvfdgx'
hdr_cells[2].text = 'abdzfgxfdf'

hdr_cells = table.rows[2].cells
hdr_cells[0].text = '3'
hdr_cells[1].text = 'cafdwvaef'
hdr_cells[2].text = 'aabs zfgf'

#增加分页
document.add_page_break()

#保存文件
document.save('demo.docx')

效果展示:

Paste_Image.png

相关文章

网友评论

  • f3f37ce2e793:如何继承原本的段落、文字格式,仅仅替换文档的部分内容?求回复
    f3f37ce2e793:@神oooo殇 有没有操作excel的模块,类似可以达到docxtpl的能力,对excel内容进行保留格式进行修改。
    f3f37ce2e793:@神oooo殇 多谢老哥,这个模块正是我需要的,老哥真是见多识广啊
    3b37cbce9663:docxtpl 模块
  • ccd5f2cfabaf:报错:All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters 怎么解决?
  • 662e8bd8a752:请问一下,add_heading()加的标题是深蓝的,怎么改成黑色呢
    662e8bd8a752:我好像实现了,这样可以改:
    head = document.add_heading()
    run = head.add_run(u"标题1")
    run.font.name=u'宋体'
    run.font.color.rgb=RGBColor(0x00,0x00,0x00)
  • 知识学者:这篇文章不错,:grin:
  • b0a20c225b5f:请问一下可以在表格里插入图片吗?
    dccddacfe99e:请问 python3 为什么报这个错误:ModuleNotFoundError: No module named 'exceptions'
    b0a20c225b5f:@海贼之路飞 好像并不行。。。而且Heading里的字体为啥不能设置,蓝瘦
    码农小杨:@Miracle__0bf2 试试你
  • bc86a494906d:请教一下,我在python27/python33下+python-docx0.86调用document.add_picture添加的图片在生成的docx文档中都无法显示。想知道你有没有遇到过这样的情况?谢谢!
    bc86a494906d:你用的Office版本是多少呢?我用2007提示文档有错,但可以显示出图片,2010/13/16三个版本则直接提示无法显示图片。而用wps则可以显示出图片来。我看到网卡大家给出的例子都能正常显示图片,看来我还得再找找原因了。谢谢!
    码农小杨:没有哎 多试几次
  • 9f6e9dde4373:# -*- coding: GBK-*- #
  • 9f6e9dde4373:SyntaxError: (unicode error) 'utf8' codec can't decode byte 0xb6 in position 0: invalid start byte
  • 889c3dd11c4c:我想知道表格里面的文本怎么居中,还有表格线能在打印的时候显示出来😁
  • 爱捣腾的吴大爷:我就想知道图片插进去后如何居中?
  • 常志伟的胡思乱想:用着感觉不错
    码农小杨:@changzw 四高矮
    常志伟的胡思乱想: @海贼之路飞 那是我在word里面的显示设置 显示所有的隐藏标记 免得排版时候被坑
    码农小杨:按着你的代码写的,没有生成虚拟表格线啊:flushed:

本文标题:使用python-docx生成Word文档

本文链接:https://www.haomeiwen.com/subject/cpflwttx.html