0

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

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

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

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

4

1 回答 1

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和excel之间的python com

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

于 2013-07-11T12:36:11.650 回答