如何在Excel Interlop c# MVC 4中提示另存为框

本文关键字:提示 另存为 MVC Excel Interlop | 更新日期: 2023-09-27 18:10:40

我想使用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 ???                                                       
         }

如何在Excel Interlop c# MVC 4中提示另存为框

由于您在服务器端,因此无法向用户提示对话框。您可以在流中加载文件并将其发送到客户端。这是客户端的浏览器决定在哪里保存这个文件。

也就是说,您必须意识到在服务器端运行的互操作是微软不推荐的(参见:KB Microsoft使用Office服务器端自动化的问题)