使用OpenXML创buildExcel不会打开文件

我正在使用OpenXML在我的MVC应用程序中创build一个Excel文档。 至于代码去,我认为我正在做的一切正确。

C#

public FileResult GetExcelReport() { // Build dataset var excelStream = CreateSpreadsheet(data); return new FileStreamResult(excelStream, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet); } internal MemoryStream CreateSpreadsheet(DataSet data) { var stream = new MemoryStream(); SpreadsheetDocument ssDoc = SpreadsheetDocument.Create(stream, SpreadsheetDocumentType.Workbook); // do some stuff to make a spreadsheet ssDoc.Close(); return stream; } 

JS

 function createExcelReport(){ $.ajax({ url: "/Remote/GetExcelReport", type: "GET", dataType: "text", cache: false, data: { sData: // params for report }, success: function(data){ window.location.href = "/Page/Index" }, error: function(error){ } }); } 

我想要在浏览器中打开文件,而不需要实际下载/保存。 这个过程看起来像是在工作,但文件没有打开。

如果我改变了

 SpreadsheetDocument ssDoc = SpreadsheetDocument.Create(stream, SpreadsheetDocumentType.Workbook); 

 SpreadsheetDocument ssDoc = SpreadsheetDocument.Create("filename.xlsx", SpreadsheetDocumentType.Workbook); 

(使用文件名而不是内存stream),一切工作正常,它保存到我的硬盘驱动器,但然后我必须导航到位置打开文件。

任何想法,我可能做错了什么? 提前致谢!

为了什么是值得的,我解决了我的问题。 我的AJAX没有对响应做任何事情,所以我用了一个@ Url.Action链接来代替AJAX调用,

 <a href="@Url.Action("GetExcelReport","Remote")">Report</a>