微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

复制在python中使用Win32打开的Word文档中的表

如何解决复制在python中使用Win32打开的Word文档中的表

我有一个使用python中的win32打开的ms-word文档,我想复制一个表,该表位于word文档的中间。

解决方法

您可以通过win32com控制Word表。

import win32com.client as win32
word = win32.gencache.EnsureDispatch('Word.Application')
word.Visible = 0
doc = word.Documents.Open('your file path')

您可以检查文档中的表号:

doc.Tables.Count

注意:与python不同,Word索引从1开始

您可以通过以下方式遍历表:

table = doc.Tables(1)       #You can choose the table you need
for row in range(1,table.Rows.Count + 1):
    for col in range(1,table.Columns.Count + 1):
        print(table.Cell(Row = row,Column = col).Range.Text)

这样,实现了获取表内容的功能。当然,如果要将该表的内容重新复制到另一个表,则可以重新创建一个表并将其添加到Word文档中。

以下是完整的示例:

import win32com.client as win32
word = win32.gencache.EnsureDispatch('Word.Application')
word.Visible = 0
doc = word.Documents.Open('test.docx')

tableNum = doc.Tables.Count     #the table numbers 

print(doc.Tables.Count)

location = doc.Range()
location.Move() # place table at the end 
table = doc.Tables(1)       #You can choose the table you need
table2 = doc.Content.Tables.Add(location,table.Rows.Count,table.Columns.Count)
table2.AutoFormat(36)

for row in range(1,Column = col).Range.Text)
        table2.Cell(Row = row,Column = col).Range.Text = table.Cell(Row = row,Column = col).Range.Text

doc.Close()     #Don't forget to close the document
word.Quit()

这是我的test.docx:

enter image description here

当我运行程序时,它对我有用:

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。