打开Excel xlsx文件以供查看

时间:2012-12-02 01:31:35

标签: c# asp.net-mvc excel

我需要打开一个xlsx文件,以便用户可以看到它。
我使用了以下代码,但无法显示excel文件:

public ActionResult GetExcelReport()
{
    string fileName = "Sheet1.xlsx";
    string path = Path.Combine(@"C:\Test", fileName);

    return File(path, "application/xlsx");
}

我希望转回File(path ...
实际上会打开文件进行查看。

2 个答案:

答案 0 :(得分:-1)

尝试使用Microsoft.Office.Interop.Excel和:

Application excel = new Application();
Workbook wb = excel.Workbooks.Open(path);
excel.Visible=true;

顺便说一句,您还可以使用using System.Diagnostics;

Process.Start(path);

您只需使用File打开文件流,它就不会Launch一个文件。

答案 1 :(得分:-1)

要扩展bhuang3的答案:如果您希望您的用户能够看到Excel电子表格,然后让您的应用程序对其执行某些操作,那么我将使用Interop答案,因为您的应用程序可以保留参考执行行动。

您可以使用

打开它
Excel.Application xlApp = new Excel.Application();
Excel.Workbooks xlWBs = xlApp.Workbooks;
Excel.Workbook xlWB = xlWBs.Open(path);
xlApp.Visible = true;

在您完成它之后,您应该关闭工作簿并退出应用程序,以防止Excel在内存中无头地停留(当用户打开另一个电子表格时,这会产生一些非常奇怪的副作用机)

xlWB.Close();
xlWB = null;
xlWBs = null;
xlApp.Quit();
xlApp = null;

或者,如果您只是想打开电子表格然后完全控制用户,我会使用Process.Start(path)解决方案,因为它可以避免许多可能混乱的COM问题。