2010-03-08 92 views
7

我在一个文件夹中有一堆.doc文件,我需要将其转换为.docx。自动化:如何自动将.doc转换为.docx?

要手动转换为.doc为.docx很简单:

  1. 在Word 2007中打开.doc
  2. 点击另存为...
  3. 保存为.DOCX

但是,为数百个文件做这件事绝对不是好玩。 = p

你会如何自动化?

回答

4

Word自动运行。

如果您使用的是.NET,请将Microsoft.Office.Interop.Word(确保它是版本12 - 等同于Word 2007,以便您可以实现上述)将参考汇编添加到您的项目并使用它自动化Word应用程序做你想做的事情。伪代码

  • 创建应用程序对象
  • 使用应用程序对象打开一个文件(通过提供它的文件名)
  • 使用Application对象通过向它的格式和输出文件名来执行另存为
  • 关闭当前文档
  • 循环通过上面的,直到你的所有文件完成
  • 家政服务代码以释放Word或文档对象

你可以在google上找到大量的例子,只要在C#中搜索Word Automation就行了。

+0

保存为新的文件格式不将文件转换为这种格式。当你按照你详细描述的方式打开新文件时,它有时会以兼容模式打开,因为你只改变了扩展名。您需要调用文档对象上的Convert()方法才能真正转换为最新的文件格式。 – codemonkeyliketab 2016-02-11 19:17:44

7

最简单的方法是使用命令行Office File Converter。刚跑

ofc 

和魔法发生。

+0

+1很好,完全忘了这个。它会更简单。 – 2010-03-08 23:11:53

14

没有必要自动化Word,由于弹出消息,这很慢且很脆弱,或者使用Microsoft Office文件转换器(ofc.exe),它具有不必要的复杂用户界面。

最简单和最快捷的方式是安装Office 2007或从Microsoft下载并安装兼容包(如果尚未完成)。然后你可以从.DOC转换很容易使用下面的命令为.docx:

"C:\Program Files\Microsoft Office\Office12\wordconv.exe" -oice -nme <input file> <output file> 

其中<输入文件>和<输出文件>必须是完全合格的路径名。

该命令可以很容易地应用于使用for多个文档:

for %F in (*.doc) do "C:\Program Files\Microsoft Office\Office12\wordconv.exe" -oice -nme "%F" "%Fx" 
+0

最简单的。谢谢。 – 2010-11-18 17:22:28

+0

简单而完美。 – Gerard 2013-07-23 09:30:24

+0

谢谢,这是完美的。 – vatsug 2017-03-01 13:59:23