通过C#打开Excel,然后允许用户手动closuresExcel

我的程序创build一个Excel文件后,我让用户看到该文件。

Excel.Application xlApp = new Excel.Application(); xlApp.Visible = true; Excel.Workbook excelWorkbook = xlApp.Workbooks.Open(xlsx.saveLocation + "\\" + xlsx.fileName, 0, false, 5, "", "", false, Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false); 

每当我closuresExcel窗口,进程(EXCEL.EXE)仍然存在(我在右上angular的红色X)。 我错过了一个设置或什么? 我希望Excel窗口独立于C#程序,所以如果我结束了后者,前者仍然是可见的。

如果你想真正独立,那么你应该使用Process.Start来启动Excel。

你需要的最简单的版本是:

 Process.Start(Path.Combine(xlsx.saveLocation, xlsx.fileName)); 

尽pipe我build议使用合适的Path方法将目录和文件名合并到一个完整的path中。 Path.Combine

资源

如果你的path或文件名有空格,那么你需要把整个东西用引号包起来:

 var arguments = new StringBuilder("\""); arguments.Append(Path.Combine(xlsx.saveLocation, xlsx.fileName)); arguments.Append("\""); Process.Start(arguments.ToString()); 

(虽然在这种情况下StringBuilder可能是矫枉过正的)

你应该通过调用Process.Start(filename)来打开文件。
这将在用户的默认程序中打开文件,而无需将代码绑定到Excel。

如果你需要操纵Excel,这将无济于事。