Python 在Word表格中插入、删除行或列

avatar
作者
猴君
阅读量:6

Word文档中的表格可以用于组织和展示数据。在实际应用过程中,有时为了调整表格的结构或适应不同的数据展示需求,我们可能会需要插入、删除行或列。以下提供了几种使用Python在Word表格中插入或删除行、列的方法供参考:

文章目录

所需Python库Spire.Doc for Python。该Python Word库支持几乎所有的Word文档元素,可以在Word中实现创建、操作表格等。
可以通过pip进行安装:

pip install Spire.Doc

Python 在Word表格中插入行

Spire.Doc for Python 提供了两种不同的方法,支持在Word表格中间指定位置处插入新行,或者在表格末尾添加新行。用到的主要方法如下:

  1. Table 类:代表Word文档中的表格。
  2. Table.Rows.Insert(index, row) 方法:在表格指定位置插入一行。
  3. Table.AddRow() 方法:在表格末尾添加一行。

示例代码:

from spire.doc import * from spire.doc.common import *  # 加载Word文档 document = Document() document.LoadFromFile("Word表格.docx")  # 获取第一节 section = document.Sections[0]  # 获取该节中第一个表格 table = section.Tables[0] if isinstance(section.Tables[0], Table) else None  # 插入一行作为第四行 table.Rows.Insert(3, table.AddRow())  # 在表格末尾添加一行 addedRow = table.AddRow()  # 保存文件 document.SaveToFile("插入行.docx", FileFormat.Docx2016) document.Close() 

生成文件如图:
Word表格插入行

Python 在Word表格中插入列

与插入行不同,插入列没有可以直接调用的方法。为了实现插入列的效果,我们可以在每一行中的指定位置插入单元格来添加新列。具体操作如下:

  1. 通过 LoadFromFile() 方法加载Word文档;
  2. 查找文档指定节中查找并返回其中第一个表格 Table 对象;
  3. 遍历表格中的每一行;
  4. 创建单元格,然后使用 TableRow.Cells.Insert() 方法将其插入到每行指定位置处;
  5. 也可以使用 TableRow.AddCell() 方法直接在每行末尾处添加一个单元格;
  6. 保存文档。

示例代码:

from spire.doc import * from spire.doc.common import *  # 加载Word文档 document = Document() document.LoadFromFile("Word表格.docx")  # 获取第一节 section = document.Sections[0]  # 获取该节中的第一个表格 table = section.Tables[0] if isinstance(section.Tables[0], Table) else None  # 遍历表格的每一行 for i in range(table.Rows.Count):     # 获取当前行     row = table.Rows[i]      # 在当前行的第三个位置处插入一个单元格     cell = TableCell(document)       row.Cells.Insert(2, cell)      # 设置新单元格的宽度     row.Cells[2].SetCellWidth(40, CellWidthType.Point)      # 在当前行的末尾添加一个新的单元格     cell = row.AddCell()      # 设置新单元格的宽度与第二列相同     cell.Width = row.Cells[1].Width  # 保存文件 document.SaveToFile("插入列.docx", FileFormat.Docx2016) document.Close() 

生成文件如图:
Word表格插入列

Python 删除Word表格中的指定行和列

  • 要删除表格中指定某行,可以直接调用 Table.Rows.RemoveAt() 方法按索引删除。
  • 而删除指定列则需要遍历表格中每一行,然后使用 TableRow.Cells.RemoveAt() 方法删除每一行中的指定单元格。

示例代码:

from spire.doc import * from spire.doc.common import *  # 加载Word文档 document = Document() document.LoadFromFile("Word表格.docx")  # 获取第一节 section = document.Sections[0]  # 获取该节中第一个表格 table = section.Tables[0] if isinstance(section.Tables[0], Table) else None  # 删除第二行 table.Rows.RemoveAt(1)  # 遍历表格中每一行 for i in range(table.Rows.Count):     # 删除每一行中的第3个单元格     row = table.Rows[i]     row.Cells.RemoveAt(2)  # 保存文档 document.SaveToFile("删除行和列.docx", FileFormat.Docx2016) document.Close() 

生成文件如图 (原表格为4x6):
删除行列

如何去除水印?点击申请一个月试用授权


相关推荐文章:
Python 在Word中创建表格
Python 复制 Word 表格中的行或列
Python 提取 Word 中的表格

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!