python之word相关操作

版权声明:转载请标明出处 https://blog.csdn.net/hanli1992/article/details/88885766

python无法处理.doc文件,所以先将.doc文件转化为.docx文件,再处理.docx

一、.doc转化为.docx

#python无法处理.doc文件,但可以处理.docx文件,先将.doc转为.docx
from win32com import client as wc
 
#word = wc.Dispatch("Word.Application")
#启动独立的进程,推荐这种
word = wc.DispatchEx("Word.Application")
 
# 后台运行,不显示,不警告
w.Visible = False
w.DisplayAlerts = 0
 
doc = word.Documents.Open(r'D:\Projects\CA\script\CA0218748520031015-DNAv01.DOC')
doc.SaveAs(r'D:\Projects\CA\script\CA0218748520031015-DNAv01.docx', 12, False, '', True, '', False, False, False, False)  #12为docx
doc.Close()
word.Quit()

若将参数“12”换成“2”,就可将.doc转成.txt

根据参数设置可以将word文件转换成任意格式文件

wdFormatDocument 0
wdFormatDocument97 0
wdFormatTemplate 1
wdFormatTemplate97 1
wdFormatText 2
wdFormatTextLineBreaks 3
wdFormatDOSText 4
wdFormatDOSTextLineBreaks 5
wdFormatRTF 6
wdFormatEncodedText 7
wdFormatUnicodeText 7
wdFormatHTML 8
wdFormatWebArchive 9
wdFormatFilteredHTML 10
wdFormatXML 11
wdFormatXMLDocument 12
wdFormatXMLDocumentMacroEnabled 13
wdFormatXMLTemplate 14
wdFormatXMLTemplateMacroEnabled 15
wdFormatDocumentDefault 16
wdFormatPDF 17
wdFormatXPS 18
wdFormatFlatXML 19
wdFormatFlatXMLMacroEnabled 20
wdFormatFlatXMLTemplate 21
wdFormatFlatXMLTemplateMacroEnabled 22

word文件转html有两种格式可选wdFormatHTML、wdFormatFilteredHTML(对应数字8、10),区别是如果是wdFormatHTML格式的话,word文件里面的公式等ole对象将会存储成wmf格式,而选用wdFormatFilteredHTML的话公式图片将存储为gif格式,而且目测可以看出用wdFormatFilteredHTML生成的HTML明显比wdFormatHTML要干净许多。

二、读取.docx

  
#读取.docx
import docx
 
#获取文档对象
file=docx.Document(r'D:\Projects\CA\script\CA0218748520031015-DNAv01.docx')
print("段落数:"+str(len(file.paragraphs)))
 
#输出每一段的内容
for para in file.paragraphs:
    print(para.text)
 
#输出段落编号及段落内容
for i in range(len(file.paragraphs)):
    print("第"+str(i)+"段的内容是:"+file.paragraphs[i].text)

猜你喜欢

转载自blog.csdn.net/hanli1992/article/details/88885766