2016-11-16 64 views
1

我有一个编辑MSWord文档序列的任务。我必须做的是改变每个文件第3段的一个词。我想用python来完成这项工作。在文件中,第3段下面有一张表格。问题是如果我改变第3段的话,第3段就会消失,我填写的词语将在下表中。如何在MSWord中使用win32com编辑特定段落中的单词

我的代码是

import os 
import win32com 
from win32com.client import Dispatch 

w = win32com.client.Dispatch('Word Application') 
w.Visible = 1 
w.DisplayAlerts = 0 
doc = w.Documents.Open(u'F:\\pythonlearning\\a.doc') 

doc.Paragraphs(3).Range.Text = 'Y\n' 
+0

做'打印doc.Paragraphs(3).Range.Text'可能有助于诊断发生了什么。 – xidgel

+0

你说得对。我使用“doc.Paragraphs中的段落”来打印所有文档,并发现每个段落都意味着回车。因此,如果我修改第(3)段,首先第(3)段的回车将被删除,然后下表为第(3)段,这就是我不想要的。 –

回答

0

索引可能从0开始,所以使用doc.Paragraphs(2)为第三段。

+0

是的,你是对的。 –

0
import os 
import win32com 
from win32com.client import Dispatch 

w = win32com.client.Dispatch('Word Application') 
w.Visible = 1 
w.DisplayAlerts = 0 
doc = w.Documents.Open(u'F:\\pythonlearning\\a.doc') 
doc.Paragraphs(3).Range.InsertBefore ('Y\n') 
doc.Paragraphs(4).Range.Text = '' 

它可以工作,但不是最好的方法。

相关问题