【问题标题】:Python - Convert tables from .doc / .docx-files to .xlsPython - 将表格从 .doc / .docx 文件转换为 .xls
【发布时间】:2013-07-11 10:37:18
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: python xls docx pywin32 xlwt


    【解决方案1】:

    我假设您有太多需要复制/粘贴的文档,并为内部使用寻求务实的解决方案。这个解决方案:

    • 以批处理模式在 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

    我发现一些有用的技巧:使用 finally 进行清理;您需要的代码看起来像 VBA 代码,如果您不擅长 VBA,请录制一个宏来做您想做的事情并针对 Python 语法进行修改。

    【讨论】:

      猜你喜欢
      • 2021-01-27
      • 2011-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-11
      • 2011-10-03
      • 1970-01-01
      • 2017-07-20
      相关资源
      最近更新 更多