2

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

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

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

我希望重新File(path ...
运行实际上会打开文件以供查看。

4

2 回答 2

-1

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

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

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

Process.Start(path);

您只需通过 using 打开文件流File,它不是Launch文件。

于 2012-12-02T01:38:59.373 回答
-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 问题。

于 2012-12-02T02:12:55.710 回答