python_docx制作word文档详细使用说明【转】

目前网上对这一个库的介绍得很少,很零散,所以很多功能我是尽量参考其官网,但是官网上面很多功能目前只有说明文档,而代码并还没有及时更新,以至于按照官网上面做了,python却报错。比如:自定义表格的高度。下面,我对我在此次工作任务中,所遇到的一些基本的功能分别做一下说明与展示。我用的是python2.7

1.创建文档


1

2

from docx import Document

document = Document()

若括号里面写入word文件路径,则表明打开该文件

2.添加标题


1

document.add_heading(‘This is my title‘0)

但是,这个有个问题是标题下面有一条横线,对于重度强迫症的我是无法容忍的。所以我直接添加段落文字表示标题

3.添加段落文字


1

2

3

4

5

6

7

8

9

from docx.shared import RGBColor

from docx.shared import Pt

from docx.enum.text import WD_ALIGN_PARAGRAPH

document.styles[‘Normal‘].font.name = u‘黑体‘      #可换成word里面任意字体

= document.add_paragraph()

p.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER    #段落文字居中设置

run = p.add_run(u‘我添加的段落文字‘)

run.font.color.rgb = RGBColor(54,95,145)             #颜色设置,这里是用RGB颜色

run.font.size = Pt(36)                 #字体大小设置,和word里面的字号相对应

  4.添加图片


1

pic = document.add_picture(‘pic.png‘,width = Inches(1.5))     #图片和python文件不在同一个文件夹下面的时候,要补全文件地址

 默认情况下,图片在文档中是左对齐的,如果要对图片进行居中显示,在网上找了很多方法都不可行,最后找到一种方法是直接加入以下代码:


1

2

last_paragraph = document.paragraphs[-1]

last_paragraph.alignment = WD_ALIGN_PARAGRAPH.CENTER      #图片居中设置

  5.添加表格


1

table = document.add_table(rows=2, cols=3,style="Table Grid"#添加2行3列的表格

  表格的style有很多种,默认情况下表格是没有边框的,Table Grid格式是普通的黑色边框表格,更多表格样式可以百度。但是,我们很多时候希望对表格进行更为漂亮的修改,比如自定义表格某一列的宽度,表格的高度。


1

2

3

4

from docx.shared import Inches

# table.autofit = False

col = table.columns[1]

col.width = Inches(5)     #设置表格第2列宽度为Inches(5) 默认情况下表格是自动适应文档宽度

  对于表格的高度官网上面有说明文档,但是其库函数的代码没有更新,所以找了很久才找到下面一种方法,以后官网要是更新了代码可以按照官网上面的方法进行设置更为简单一些。


1

2

3

4

5

6

7

8

from docx.oxml.ns import qn

from docx.oxml import OxmlElement

for in range(rows):     #遍历表格的所有行

    tr = table.rows[i]._tr

    trPr = tr.get_or_add_trPr()

    trHeight = OxmlElement(‘w:trHeight‘)

    trHeight.set(qn(‘w:val‘), "450")         

    trPr.append(trHeight)                    #表格的每一行进行高度设置,450这个值可以任意修改

  6.表格里面添加文字


1

2

3

4

5

heading_cells = table.rows[0].cells     #将表格的第一行设置为表头

for in range(cols):         #cols为表格的列数

    = heading_cells[i].paragraphs[0]    #利用段落功能添加文字

    run = p.add_run(Arr[i])      #把表头放在一个数组里面的,这样方便赋值

    p.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER   #居中设置,默认是左对齐

  还有一种直接对表格赋值的方式:


1

table.cell(i,j).text = u‘表格文字‘       #在表格的i行j列设置文字,默认文字在表格中是左对齐

  7.添加表格行


1

row = table.add_row()

  若需要对添加的行进行赋值,其方法和上面是一样的。

  8.文档的保存


1

document.save(‘test.docx‘)  #可以设置其他路径

  整体代码如下:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

from docx import Document

from docx.oxml.ns import qn

from docx.oxml import OxmlElement

from docx.shared import RGBColor

from docx.shared import Pt

from docx.enum.text import WD_ALIGN_PARAGRAPH

from docx.shared import Inches

 

 

document = Document()

document.add_heading(‘This is my title‘0)

document.add_paragraph(‘my paragraph‘)

 

document.styles[‘Normal‘].font.name = u‘黑体‘

= document.add_paragraph()

p.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER

run = p.add_run(u‘我添加的段落文字 ‘)

run.font.color.rgb = RGBColor(5495145)

run.font.size = Pt(36)

 

pic = document.add_picture(‘logo1.PNG‘)

last_paragraph = document.paragraphs[-1]

last_paragraph.alignment = WD_ALIGN_PARAGRAPH.CENTER  # 图片居中设置

 

rows = 2

cols = 3

table = document.add_table(rows=rows, cols=cols,style = "Table Grid")  # 添加2行3列的表格

 

for in range(rows):

    tr = table.rows[i]._tr

    trPr = tr.get_or_add_trPr()

    trHeight = OxmlElement(‘w:trHeight‘)

    trHeight.set(qn(‘w:val‘), "450")

    trPr.append(trHeight)  # 表格高度设置

# table.autofit = False

col = table.columns[1]

col.width = Inches(5)

arr = [u‘序号‘,u"类型",u"详细描述"]

heading_cells = table.rows[0].cells

for in range(cols):

    = heading_cells[i].paragraphs[0]

    run = p.add_run(arr[i])

    run.font.color.rgb = RGBColor(5495145)  # 颜色设置,这里是用RGB颜色

    run.font.size = Pt(12)  # 字体大小设置,和word里面的字号相对应

    p.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER

table.cell(11).text = u‘表格文字‘

table.add_row()

document.save(‘test1.docx‘)

  运行结果如下:

原文地址:https://www.cnblogs.com/jcjc/p/9890526.html

时间: 2024-10-12 07:31:31

python_docx制作word文档详细使用说明【转】的相关文章

Word文档压缩的方法

我们在工作中,制作word文档的时候,有时候经常需要插入图片,有时插入的图片过多,导致word文档的体积特别大,电脑会反应很慢.我们使用中打开的时候,打开速度也是很慢.而且在我们发送的时候,也是非常耗费时间的.下面小编教大家怎样将word文档压缩到最小.使用工具:迅捷PDF转换器1.PDF转换器是一个功能特别丰富的软件,大家在百度浏览器中搜索PDF转换器,找到相对应的下载链接,下载安装到电脑中.2.大家软件安装完成后,进入功能页面,选择我们需要的功能,点击页面上方的[特色转换]选项,再选择左侧[

分享一个Delphi制作的文档编辑器源代码(仿Word)

功能挺多的,就是很多地方都没有完善.不过简单使用,是没有问题的. 我也忘记是在哪个网站下载的,可能是Git国外的网站. 仿Word文档编辑器,不过其实没有必要的,因为用户会直接使用微软或者其他软件来制作自己的文档. 但是却具有参考价值,虽然代码需要优化的地方还有很多.比如那些添加控件这些可以去除,把代码结构处理得紧凑一些,而且增加更多可以自定义的地方就更理想了. 其实大家最最讨厌都是一些滚动条和控件背景颜色都无法自定义,都被写得死死的,就像原来Vcl那些玩意一样.想弄个自定义界面都办不到.这套代

还在为画“类Word文档报表”而发愁吗?

?Word 是非常强大的文档编辑工具,一些行业制式文档都是使用Word来创建的,像教育行业的申请表,履历表,审批表等,像石油业的勘探记录表,记录报告,检测报告等,如房地产业的制式合同,不仅包含大量的文字描述,还会嵌入图片,表格等一些数据控件.我们通常选择使用 Word 来创建这些文档,因为它有着极强的图文混排的能力能够实现集图表,表格,图片等组成的一个混合布局的复杂报表. 但使用Word越是创建这些复杂的结构,越需要耗费过多的时间来"画"出这些复杂的样式, 且所有的数据都需要手动输入,

C#实现通过模板自动创建Word文档的方法

本文实例讲述了C#实现通过模板自动创建Word文档的方法,是非常实用的技巧.分享给大家供大家参考.具体实现方法如下: 引言:前段时间有项目要用c#生成Word格式的计算报告,通过网络查找到很多内容,但是都很凌乱,于是自己决定将具体的步骤总结整理出来,以便于更好的交流和以后相似问题可以迅速的解决! 现通过具体的示例演示具体的步骤: 第一步,制作模板 1.新建一个文档,设置文档内容. 2.在相应位置插入书签:将鼠标定位到要插入书签的位置,点击"插入">"书签",弹

将ppt幻灯片转为Word文档的简单应用

工作之后你就会明白做好ppt的重要性,因为工作中需要制作ppt的时候很多.有时候我们也会遇到要将ppt转换成word的时候, PPT幻灯片文件的应用特别广泛,上学时老师上课会用它辅助讲解,上班后会议室的老板会用它展示他想表达的关键词.同时,不仅可以在计算机上进行演示,也可以在投影仪上演示,也可以把演示文稿打印出来,制作成胶片.如果我们需要将PPT转换成Word,该怎么转换呢? 下面就和大家简单说说转换的步骤. 1.先下载一个pdf转换器,打开下载好的软件,在主页面的左侧需要选择文件类型,这里我们

怎样能够轻松将ppt转为word文档

现在的办公中,有三个最常用的办公文档就是Word.Excel.PPT,三者间也存在着密切的关系,一般情况下 我们会把制作好的PPT文档转换成成Word文档以便携带和交流.相信很多人都想知道方法,但对于小白来说,看到一大堆资料时,都会头疼不已,那怎样可以很好大将ppt转换成word文档?下面就跟大家具体的介绍下如何来转换文档格式. 这里需要应用到文档的格式转换工具--迅捷pdf转换器.通常来说,转换单个PDF文件几乎可以在瞬间完成,不会感受到任何转换过程的停顿,即便针对超大容量以及复杂的内容的PD

用Aspose.Words for .NET动态生成word文档中的数据表格

1.概述 最近项目中有一个这样的需求:导出word 文档,要求这个文档的格式不是固定的,用户可以随便的调整,导出内容中的数据表格列是动态的,例如要求导出姓名和性别,你就要导出这两列的数据,而且这个文档不是导出来之后再调整而是导出来后已经是调整过了的.看到这里,您也许马上想到用模板导出!而且.NET中自带有这个组件:Microsoft.Office.Interop.Word,暂且可以满足需求吧.但这个组件也是有局限性的,例如客户端必须装 office组件,而且编码复杂度高.最麻烦的需求是后面那个-

多人协作时编辑word文档的一个小窍门

多人协作时编辑word文档的一个小窍门 最近在工作中编写标书时由于不同内容分给了各个部门去制作,但是在汇总后遇到再次修改的问题.对方把修改后的部分文档发给我粘贴到标书中后,所有的格式全部都乱了.重新整理格式.标题,每次导入新的文档都重复这个工作,真是低效啊.事后想想word这么高级的文档编辑工具,肯定会有解决办法吧? 解决办法一 文档合并 将每个章节划分为多个文档,文档名称命名为章节编号,然后: 我们需要新建一个word文档并对这个文档的页面进行设置,使之与要合并的其他文档的页面设置保持一致,或

使用Spire.Doc组件利用模板导出Word文档

以前一直是用Office的组件实现Word文档导出,但是让客户在服务器安装Office,涉及到版权:而且Office安装,包括权限配置也是比较麻烦. 现在流行使用第三方组件来实现对Office的操作,有NPOI,Spire等第三方组件.开始考虑的是NPOI,毕竟它在操作Excel方面还是很强大的:但是不知道是它本身没有,还是我没找到,无法实现利用Word模板的标签插入内容,纯靠代码去生成Word文档,排版是个大问题.最终找到了Spire.Doc组件,轻松实现! Spire的官网地址:https: