【发布时间】:2013-07-11 10:37:18
【问题描述】:
我的任务是将一系列表格从.doc 和.docx-files 转换为.xls,
但还没有找到有效的方法来做到这一点。表格可能位于其他文本之间。
我查看了pywin32, xlwt 和其他几个库,但似乎我必须经历很多步骤。
此表从*.doc/*.docx 转换为*.xls 文件的任何提示?
【问题讨论】:
标签: python xls docx pywin32 xlwt
我的任务是将一系列表格从.doc 和.docx-files 转换为.xls,
但还没有找到有效的方法来做到这一点。表格可能位于其他文本之间。
我查看了pywin32, xlwt 和其他几个库,但似乎我必须经历很多步骤。
此表从*.doc/*.docx 转换为*.xls 文件的任何提示?
【问题讨论】:
标签: python xls docx pywin32 xlwt
我假设您有太多需要复制/粘贴的文档,并为内部使用寻求务实的解决方案。这个解决方案:
在 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 语法进行修改。
【讨论】: