C#Word Interop使用Word 2003 +兼容包保存docx

时间:2011-04-08 00:06:47

标签: c# ms-word office-interop

在我的开发机器上,我在Win7 x64上安装了Office 2007。

目标计算机是在WinXP x64上运行的Office 2003 +兼容包(用于读/写docx等)。

除其他外,我的程序会在doc文件上打开/另存为命令,将它们转换为docx。

它在我的机器上运行得非常好,但遗憾的是在目标机器上提供了零大小的文件。没有异常被抛出,看起来它工作正常,除非我查看输出文件,它是零长度。

任何想法为什么会发生这种情况,以及如何解决这个问题?

我的最后一招将是编写一个丑陋的Word / PowerPoint宏,它可以打开文档并保存。我希望在不打开Word / PowerPoint窗口的情况下从程序中自动完成所有操作。

2 个答案:

答案 0 :(得分:2)

没有必要自动化Word,由于弹出消息而导致Word缓慢而脆弱您可能希望查看Microsoft的Office文件转换器(ofc.exe),但是它具有不必要的复杂用户界面。

最简单快捷的方法是使用以下命令轻松地将.doc转换为.docx:

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

其中&lt;输入文件&gt;和&lt;输出文件&gt;需要是完全限定的路径名​​。

使用for

可以轻松地将命令应用于多个文档
for %F in (*.doc) do "C:\Program Files\Microsoft Office\Office12\wordconv.exe" -oice -nme "%F" "%Fx"

您可以使用Process.Start方法从C#运行此命令。

答案 1 :(得分:0)

您确定您正在使用的SAVE或SAVEAS是否指定了强制文件另存为DOCX的正确选项?在2007年,这是内置的,但在2003年,我相信你必须以不同的方式指定保存格式,明确告诉它使用兼容包中的适当过滤器。