我目前有一个单词doc。文件合并程序,我试图打开一个特定的单词doc。取决于用户选择。
// sample of code used:
string outputFolder = null;
...
// file selection
...
string outcomeFolder = outputFolder;
string outputFile = "Combined Folder " + fileDate + " @ " + fileTime + ".docx";
string outputFileName = Path.Combine(outcomeFolder, outputFile);
在该计划中,用户通过outputFolder
fileBrowserDialog
目前,该程序正确运行并合并用户选择的文件夹中的文件,但无法打开Microsoft Word以及合并的结果文档。
我试图使用:
Microsoft.Office.Interop.Word.Application officeApp =
new Microsoft.Office.Interop.Word.Application();
...
// merging code
...
Document documentTest = officeApp.Documents.Open(outputFileName);
我注意到虽然程序无法启动Word,但任务管理器继续创建Word的新实例。形成的合并文档也无法删除,因为它声称文件当前正在使用中。这就像程序在后台打开但不是物理启动。必须先杀死Word的任务管理器实例,然后才能编辑/删除合并文件
有任何补救措施的建议吗?我是否因为非静态文件路径而忽略了一些简单化的问题或问题? - 如果需要任何其他信息,请询问。谢谢
更新1:
由于实现officeApp.Visible = true;
程序现在启动创建的文件,然后可以编辑/重新保存等。但是,如果我再次立即运行程序,尝试在同一文件夹中创建另一个合并文件等我呈现与"RPC server is unavailable. (Exception from HRESULT: 0x800706BA)"
更新2: 如上所列,我得到了一个通用的HRESULT错误代码,我现在已经补救了。我将“new officeApp”移动到“合并”处理程序中,这似乎允许快速连续多次合并而不会抛出错误。
更新3:
为了使事情变得更简单,我已经尝试实施Process.Start(outputFileName);
来打开文档。这是由于我现在介绍的附加复选框,允许用户决定是否合并了doc。将在创建后启动/呈现。如果文件可见性设置为false,则此新代码还会阻止创建其他Word.exe。
谢谢大家的建议和帮助。
答案 0 :(得分:4)
您是否尝试过让Word可见?
officeApp.Visible = true;