python处理word中的表格

基础知识
先讲一些基本的概念,方便后面学应用的时候顺畅一点。

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)也是套用这个代码。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值