基础知识
先讲一些基本的概念,方便后面学应用的时候顺畅一点。
1.table表示表格,row表示行,column表示列,cell表示单元格。
2.table、row、column、cell都是列表形式。即tables[0]表示第一个表格。
3.定位单元格有以下几种方式:
#定位到第一行第一列的单元格
(1)tables[0].cell(0,0)
(2)tables[0].rows[0].cells[0]
(3)tables[0].columns[0].cells[0]
先自行学习吸收一下,下面开始正式的应用讲解。
一、表格
1.添加表格
doc.add_table(3,4) #添加一个3行4列的表格
行和列是必须要传入的参数。
打开文件看一下,你会发现表格是没有边框的,这是默认的表格样式。如果需要特定的样式还需要传入一个参数style。例:
doc.add_table(3,4,style = “Table Grid”)
"Table Grid"是最常用的样式。word自带的有100种样式(根据word版本不同会有细微差别)。
也可以修改已有表格样式,例:
doc.tables[0].style = “Table Grid”
2.删除表格
这里删除表格是指删除整个表格。例:
table = doc.tables[0] #定位第一个表格
table._element.getparent().remove(table._element) #删除表格
删除表格的代码比较长。大家可以先定位表格,然后直接复制第二行代码即可删除。因为是以应用为主,也没必要把整个代码都记下来。(大家可以先收藏,等需要用的时候,直接复制粘贴)
3.表格对齐
这里的表格对齐是指整个表格的对齐方式,不涉及单元格等。例:
#word中插入的表格默认是左对齐(我的电脑是这样的),下面设置将表格居中对齐。
(1)需要导入模块方法
from docx.enum.table import WD_TABLE_ALIGNMENT
(2)运行
table = doc.tables[0]
table.alignment = WD_TABLE_ALIGNMENT.CENTER
为了后期使用的方便,我都是先定位到需要操作的表格,然后再进行操作。
二、行
1.添加行
table = doc.tables[0]
table.add_row()
添加的行在表格最底部,可以看到现在的表格是4行4列。
2.修改行高
(1)先导入长度模块
from docx.shared import Cm
这里用厘米所以我导入了Cm,还可以使用Inches,Pt等。
(2)运行
for row in doc.tables[0].rows:
row.height = Cm(1) #修改行高为1厘米
需要先遍历每一行,然后再修改行高。
3.删除行
row = doc.tables[0].rows[0] #定位到第一行
row._element.getparent().remove(row._element)
跟删除表格类似,???._element.getparent().remove(???._element),只有问号处不同。
三、列
1.添加列
(1)导入长度
from docx.shared import Cm
添加列在表格的最右侧,必须指定列宽。
(2)运行
doc.tables[0].add_column(Cm(1))
2.修改列宽
(1)导入长度
from docx.shared import Cm
(2)运行
for col in doc.tables[0].columns:
for cell in col.cells:
cell.width = Cm(3)
易错点:这与修改行高不同,需要遍历每个单元格之后,再修改列宽。
3.删除例
col = doc.tables[0].columns[0]
for cell in col.cells:
cell._element.getparent().remove(cell._element)
同样删除列,也是需要遍历到这一列的每一个单元格,再删除。???._element.getparent().remove(???._element)也是套用这个代码。