将数据从Dataset导出到Excel后如何下载excel文件?

时间:2014-12-29 05:19:06

标签: c# excel

在将数据从数据集发送到Excel文件后,我不知道如何下载Excel文件格式。 这是我的代码请帮忙

public void exporttoexcel(DataTable dt)
{   
    Excel.Application xlApp;
    Excel.Workbook xlWorkBook;
    Excel.Worksheet xlWorkSheet;
    object misValue = System.Reflection.Missing.Value;
    xlApp = new Excel.Application();
    xlWorkBook = xlApp.Workbooks.Add(misValue);
    xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
    for (int i = 1; i < dt.Columns.Count + 1; i++)
    {
        xlWorkSheet.Cells[1, i] = dt.Columns[i - 1].ColumnName;
    }

    for (int j = 0; j < dt.Rows.Count; j++)
    {
        for (int k = 0; k < dt.Columns.Count; k++)
        {
            xlWorkSheet.Cells[j + 2, k + 1] = dt.Rows[j].ItemArray[k].ToString();
        }
    }
    xlWorkBook.Save();
    xlWorkBook.Close();
    xlApp.Quit();
}

1 个答案:

答案 0 :(得分:0)

我建议以下作为指导。使用下面的代码行将excel文件保存到某个文件系统,以指定位置:

  

xlWorkBook.SaveAs(Path.Combine(filePath,fileName));

然后调用以下方法将文件位置和名称作为参数

传递
private void GenerateFile(string strPath)
{
     var file = new FileInfo(@strPath);

     Response.Clear();
     Response.ContentType = "application/vnd.ms-excel";
     Response.AddHeader("Content-Disposition", "attachment; filename=\"" + file.Name + "\"");
     Response.AddHeader("Content-Length", file.Length.ToString());
     Response.TransmitFile(file.FullName);
     HttpContext.Current.ApplicationInstance.CompleteRequest();
}

如果您想从中下载浏览器,则会将文件推送到浏览器中。或者,只需使用上面的行将其保存到文件系统中。