jimmygan 发表于 2013-2-7 18:36:49

Python转换office word文件为HTML

这里测试的环境是:windows xp,office 2007,python 2.5.2,pywin32 build 213,原理是利用win32com接口直接调用office API,好处是简单、兼容性好,只要office能处理的,python都可以处理,处理出来的结果和office word里面“另存为”一致。
#!/usr/bin/env python #coding=utf-8 from win32com import client as wc word = wc.Dispatch('Word.Application') doc = word.Documents.Open('d:/labs/math.doc') doc.SaveAs('d:/labs/math.html', 8 ) doc.Close() word.Quit()
关键的就是doc.SaveAs(‘d:/labs/math.html’, 8 )这一行,网上很多文章写成:doc.SaveAs(‘d:/labs/math.html’, win32com.client.constants.wdFormatHTML),直接报错:

AttributeError: class Constants has no attribute ‘wdFormatHTML’

当然你也可以用上面的代码将word文件转换成任意格式文件(只要office 2007支持,比如将word文件转换成PDF文件,把8改成17即可),下面是office 2007支持的全部文件格式对应表:
wdFormatDocument                  =0wdFormatDocument97                  =0wdFormatDocumentDefault             = 16wdFormatDOSText                     =4wdFormatDOSTextLineBreaks         =5wdFormatEncodedText               =7wdFormatFilteredHTML                = 10wdFormatFlatXML                     = 19wdFormatFlatXMLMacroEnabled         = 20wdFormatFlatXMLTemplate             = 21wdFormatFlatXMLTemplateMacroEnabled = 22wdFormatHTML                        =8wdFormatPDF                         = 17wdFormatRTF                         =6wdFormatTemplate                  =1wdFormatTemplate97                  =1wdFormatText                        =2wdFormatTextLineBreaks            =3wdFormatUnicodeText               =7wdFormatWebArchive                  =9wdFormatXML                         = 11wdFormatXMLDocument               = 12wdFormatXMLDocumentMacroEnabled   = 13wdFormatXMLTemplate               = 14wdFormatXMLTemplateMacroEnabled   = 15wdFormatXPS                         = 18
照着字面意思应该能对应到相应的文件格式,如果你是office 2003可能支持不了这么多格式。word文件转html有两种格式可选wdFormatHTML、wdFormatFilteredHTML(对应数字8、10),区别是如果是wdFormatHTML格式的话,word文件里面的公式等ole对象将会存储成wmf格式,而选用wdFormatFilteredHTML的话公式图片将存储为gif格式,而且目测可以看出用wdFormatFilteredHTML生成的HTML明显比wdFormatHTML要干净许多。

当然你也可以用任意一种语言通过com来调用office API,比如PHP.

原文链接 : http://www.fuchaoqun.com/2009/03/use-python-convert-word-to-html-with-win32com/
页: [1]
查看完整版本: Python转换office word文件为HTML