Office 文件是我们日常工作生活中都经常用到的文件格
式,其中以 Word 格式的文件最为常用 。
Python 可通过 Win32com 纽件对 Micro so位 Office 文件
进行存取,并且 Python 己内直了 Win32com 纽件,不需要
另外安装。 使用 Win32com 纽件处理 Microsoft Office 文件,
计算机必须己安装 Microso企 Office 。
实现新建文件并保存
下面我们导入 Win32com 组件
的 client 模块:
处理 Word 文件需先建立 Word 应用 。 语法为 :
新建文件
Win32com 组件新建文件通过 Documents 的 Add 方法来实现,语法为:
例如,新建文件的变量名称为 doc:
文件内容的位置可通过文件变量的 Range 方法设置,语法为:
起始位置及结束位置为整数,表示字符的数目 。 例如,把文件前 10 个字符保存
至 rangel 变量 :
向 Word 文件中插入文本可通过两种方法来实现。一种方法是 InsertA丘巳r ,此方
法把文字插入到范围变量结束位置之后,插入后位置变量的结束位置的值为改变,
语法为:
另一种方法是 InsertBefore ,此方法是将文字插入到范围变量起始位置的前面,
语法为 :
使用 ln sertBefore 方法插入文本后不会改变范围变量的位置起始值,再次使用
InsertBefore 方法时,还是会把文字插入到变量的最初起始位置值之前。
保存文件
由于 Win32com 组件存取文件时不
能使用相对路径,所以必须先取得 Python 程序文件所在路径,语法为 :
保存 Word 文件的语法为 :
例如,把文件保存在 media 文件夹中,文件名为 testl.docx :
处理完 Word 文件,通常会在程序最后关闭 Word 文件及应用,以免占用系统资
源,语法为:
用 Win32com 组件建立 Word 文件,插入内容后存盘 。
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()