如何解决复制在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:
当我运行程序时,它对我有用:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。