Win32com 组件打开文件通过 Documents 的 Open 方法,语法为 :
例如,打开上一节创建的 testl . docx 文件 , 文件变量名为 doc:
获得文件内容的方法有两种,第一种较为简单,用 文件变量的 Content 方法即可
获取全部内容,语法为 :
import os from win32com import client word = client.gencache.EnsureDispatch('Word.Application') word.Visible = 1 word.DisplayAlerts = 0 doc = word.Documents.Add() range1 = doc.Range(0,0) #文件起始处 range1.InsertAfter("这是测试第一行 这是测试第二行 ") range1.InsertAfter("这是测试第三行 这是测试第四行 ") range1.InsertBefore("第一次插入到文件最前方 ") range1.InsertBefore("再次插入到文件最前方 ") # cpath = os.path.dirname(__file__) doc.SaveAs("E:\media\test1.docx") # doc.Close() # word.Quit()
import os from win32com import client word = client.gencache.EnsureDispatch('Word.Application') word.Visible = 0 word.DisplayAlerts = 0 # cpath=os.path.dirname(__file__) doc = word.Documents.Open("E:\media\test1.docx") print(doc.Content) doc.Close() word.Quit()
import os from win32com import client word = client.gencache.EnsureDispatch('Word.Application') word.Visible = 1 word.DisplayAlerts = 0 doc = word.Documents.Add() range1 = doc.Range(0,0) #文件起始处 range1.InsertAfter("这是测试第一行 这是测试第二行 ") range1.InsertAfter("这是测试第三行 这是测试第四行 ") range1.InsertBefore("第一次插入到文件最前方 ") range1.InsertBefore("再次插入到文件最前方 ") # cpath = os.path.dirname(__file__) doc.SaveAs("E:\media\test1.docx") # doc.Close() # word.Quit() import os from win32com import client word = client.gencache.EnsureDispatch('Word.Application') word.Visible = 0 word.DisplayAlerts = 0 # cpath=os.path.dirname(__file__) doc = word.Documents.Open("E:\media\test1.docx") paragraphs = doc.Paragraphs for p in paragraphs: text = p.Range.Text.strip() print(text) doc.Close() word.Quit()
、. Range . Text ”实现段落内容的读取,其中的 s trip () 方法用于
实现换行符的删除
通过这种方法可以读取任意段落的内容,所以可根据需求来显示文件的部分内
容。读取其中一个段落内容的语法为:
注意 n 的值是由 1 开始,即 1 表示第一段, 2 表示第二段,依此类推 。 例如下面
程序会显示第一段及第三段的内容:
import os from win32com import client word = client.gencache.EnsureDispatch('Word.Application') word.Visible = 1 word.DisplayAlerts = 0 doc = word.Documents.Add() range1 = doc.Range(0,0) #文件起始处 range1.InsertAfter("这是测试第一行 这是测试第二行 ") range1.InsertAfter("这是测试第三行 这是测试第四行 ") range1.InsertBefore("第一次插入到文件最前方 ") range1.InsertBefore("再次插入到文件最前方 ") # cpath = os.path.dirname(__file__) doc.SaveAs("E:\media\test1.docx") # doc.Close() # word.Quit() word = client.gencache.EnsureDispatch('Word.Application') word.Visible = 0 word.DisplayAlerts = 0 # cpath=os.path.dirname(__file__) doc = word.Documents.Open("E:\media\test1.docx") paragraphs = doc.Paragraphs print("第一段:" + paragraphs(1).Range.Text.strip()) print("第三段:" + paragraphs(3).Range.Text.strip()) doc.Close() word.Quit()