aspx导出数据方法

发布时间 2023-08-02 17:03:25作者: herry507

1、导出txt

private static void Export(DataTable tb, string fileName)
{
HttpContext.Current.Response.Clear();
string FileName = fileName + ".txt";
HttpContext.Current.Response.Buffer = true;
HttpContext.Current.Response.Charset = "GB2312";
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
HttpContext.Current.Response.ContentType = "application/ms-text";
System.IO.StringWriter sw = new System.IO.StringWriter();
for (int i = 0; i < tb.Rows.Count; i++)
{
for (int j = 0; j < tb.Columns.Count; j++)
{
sw.WriteLine(tb.Rows[i][j].ToString().Trim() +"\t");
}
sw.WriteLine("\r\n");
}
HttpContext.Current.Response.Write(sw.ToString());
sw.Close();
HttpContext.Current.Response.End();

}

2、导出excel

private void PutExcel2Client()
{
string exportFile = _exportReportFileName;

System.IO.FileInfo file = new System.IO.FileInfo(exportFile);
HttpResponse contextResponse = HttpContext.Current.Response;
contextResponse.Redirect(string.Format("~/UploadFile/ExportExcelFile/{0}", Path.GetFileNameWithoutExtension(TemplateName)
+ "_" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".xls"), false);
HttpContext.Current.Response.Clear();
// HttpContext.Current.Response.Charset = "GB2312";
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpContext.Current.Server.UrlEncode(file.Name));
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
HttpContext.Current.Response.AddHeader("Content-Length", file.Length.ToString());

// 指定返回的是一个不能被客户端读取的流,必须被下载
HttpContext.Current.Response.ContentType = "application/ms-excel";

// 把文件流发送到客户端
HttpContext.Current.Response.WriteFile(file.FullName);
// 停止页面的执行

HttpContext.Current.Response.End();
}