如何在Excel Interlop c#MVC中提示保存为文本框4

我想用Excel Interloop导出我的Excel表格…

我有一个数据表,我将其转换为Excel表格…

现在有没有办法使用MVC 4中的保存对话框保存文件

在这里我的代码

public string DataTableToExcel(DataTable dt, string htmlHeading, string key) { try { Microsoft.Office.Interop.Excel.Application excel; Microsoft.Office.Interop.Excel.Workbook excelworkBook; Microsoft.Office.Interop.Excel.Worksheet excelSheet; Microsoft.Office.Interop.Excel.Range excelCellrange; excel = new Microsoft.Office.Interop.Excel.Application(); excel.Visible = false; excel.DisplayAlerts = false; excelworkBook = excel.Workbooks.Add(Type.Missing); excelSheet = (Microsoft.Office.Interop.Excel.Worksheet)excelworkBook.ActiveSheet; excelSheet.Name = "Sheet1"; DataSet new_ds = new DataSet(); DataTable dtCopy = dt.Copy(); new_ds.Tables.Add(dtCopy); foreach (DataTable table in new_ds.Tables) { for (int i = 1; i < table.Columns.Count + 1; i++) { excelSheet.Cells[1, i] = table.Columns[i - 1].ColumnName; } for (int j = 0; j < table.Rows.Count; j++) { for (int k = 0; k < table.Columns.Count; k++) { excelSheet.Cells[j + 2, k + 1] = table.Rows[j].ItemArray[k].ToString(); } } } ///// Now how can i export my Excel in save As box ??? } 

您不能提示用户的对话框,因为您在服务器端。 您可以在Stream中加载文件并将其发送给客户端。 它是客户端的浏览器,它决定在哪里保存这个文件。

也就是说,您必须意识到,在服务器端运行的Interop 不是 Microsoft 推荐的(请参阅: Microsoft使用Office的服务器端自动化的问题 )