Python - 将.doc / .docx文件中的表转换为.xls

时间:2013-07-11 10:37:18

标签: python xls docx pywin32 xlwt

我的任务是将一系列表从.doc.docx-files转换为.xls

但是还没有找到一种有效的方法来做到这一点。表格可能介于其他文本之间。

我已经查看了pywin32, xlwt和其他几个库,但似乎我必须经历很多步骤。

此表格从*.doc/*.docx转换为*.xls文件的任何提示?

1 个答案:

答案 0 :(得分:0)

我假设你有太多的文件要复制/粘贴,并寻求一个实用的解决方案供内部使用。这个解决方案:

  • 以批处理方式在Word中打开文件
  • 您可以编写一个小脚本来删除HTML中标记之外的所有内容
  • 以HTML格式保存文件,但使用.xls扩展名
  • 默认情况下,HTML文件将在Excel中打开,您只需点击警告即可。

在Word中创建一个宏,如下所示:

Sub BatchSaveAs()
    ' Set output_dir appropriately
    ChangeFileOpenDirectory "output_dir"

    outDocName = Left(ActiveDocument.Name, Len(ActiveDocument.Name) - 4) & ".xls"

    ActiveDocument.SaveAs FileName:=outDocName, FileFormat:= _
        wdFormatFilteredHTML, LockComments:=False, Password:="", AddToRecentFiles _
        :=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _
        :=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
        SaveAsAOCELetter:=False

    ActiveWindow.View.Type = wdWebView

    Application.Quit SaveChanges:=wdDoNotSaveChanges
End Sub

现在,您可以通过脚本为批处理模式运行Word,该脚本为每个输入文件调用它:

winword file_name /mBatchSaveAs

(您可能需要使用完整路径名称)

如果打开HTML / Excel文件的警告不正常,您可以编写一些Python脚本以批处理方式运行Excel。这显示了如何从Python运行Excel:

Python com between python and excel

我觉得有用的一些技巧:最后用于清理;您需要的代码看起来像VBA代码,如果您不擅长VBA,请记录一个宏来执行您想要的操作并修改Python语法。