在我的开发机器上,我在Win7 x64上安装了Office 2007。
目标计算机是在WinXP x64上运行的Office 2003 +兼容包(用于读/写docx等)。
除其他外,我的程序会在doc文件上打开/另存为命令,将它们转换为docx。
它在我的机器上运行得非常好,但遗憾的是在目标机器上提供了零大小的文件。没有异常被抛出,看起来它工作正常,除非我查看输出文件,它是零长度。
任何想法为什么会发生这种情况,以及如何解决这个问题?
我的最后一招将是编写一个丑陋的Word / PowerPoint宏,它可以打开文档并保存。我希望在不打开Word / PowerPoint窗口的情况下从程序中自动完成所有操作。
答案 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年,我相信你必须以不同的方式指定保存格式,明确告诉它使用兼容包中的适当过滤器。