asp.net 将DataTable中的数据导出到Excel并下载方法
我上一篇文章介绍了Excel导入到DataTable的方法,总觉得少些什么,这篇我就将DataTable
中的数据导出到Excel并提供下载的方法记录下来。
调用如下:
CreateExcel(dtexcel, "application/ms-excel", excel);
方法如下:
/// <summary>
/// DataTable中的数据导出到Excel并下载
/// </summary>
/// <param name="dt">要导出的DataTable</param>
/// <param name="FileType">类型</param>
/// <param name="FileName">Excel的文件名</param>
public void CreateExcel(DataTable dt, string FileType, string FileName)
{
Response.Clear();
Response.Charset = "UTF-8";
Response.Buffer = true;
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.AppendHeader("Content-Disposition", "attachment;filename=\"" + System.Web.HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8) + ".xls\"");
Response.ContentType = FileType;
string colHeaders = string.Empty;
string ls_item = string.Empty;
DataRow[] myRow = dt.Select();
int i = 0;
int cl = dt.Columns.Count;
foreach (DataRow row in myRow)
{
for (i = 0; i < cl; i++)
{
if (i == (cl - 1))
{
ls_item += row[i].ToString() + "\n";
}
else
{
ls_item += row[i].ToString() + "\t";
}
}
Response.Output.Write(ls_item);
ls_item = string.Empty;
}
Response.Output.Flush();
Response.End();
}