如何在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 ???
}
由于您在服务器端,因此无法向用户提示对话框。您可以在流中加载文件并将其发送到客户端。这是客户端的浏览器决定在哪里保存这个文件。
也就是说,您必须意识到在服务器端运行的互操作是微软不推荐的(参见:KB Microsoft使用Office服务器端自动化的问题)