Asp.net中DataTable导出到Excel的方法介绍
#region datatable导出到excel
/// <summary>
/// datatable导出到excel
/// </summary>
/// <param name="pdata">datatable</param>
/// <param name="pfilename">导出文件名</param>
/// <param name="pheader">导出标题以|分割</param>
public static void datatableexcel(system.data.datatable pdata, string pfilename, string pheader)
{
system.web.ui.webcontrols.datagrid dgexport = null;
// 当前对话
system.web.httpcontext curcontext = system.web.httpcontext.current;
// io用于导出并返回excel文件
system.io.stringwriter strwriter = null;
system.web.ui.htmltextwriter htmlwriter = null;
if (pdata != null)
{
string useragent = curcontext.request.servervariables["http_user_agent"].tolower();
if (useragent.indexof("firefox") == -1)//火狐浏览器
pfilename = httputility.urlencode(pfilename, system.text.encoding.utf8);
curcontext.response.addheader("content-disposition", "attachment; filename=" + pfilename + ".xls");
curcontext.response.contenttype = "application/vnd.ms-excel";
strwriter = new system.io.stringwriter();
htmlwriter = new system.web.ui.htmltextwriter(strwriter);
// 为了解决dgdata中可能进行了分页的情况,需要重新定义一个无分页的datagrid
dgexport = new system.web.ui.webcontrols.datagrid();
dgexport.datasource = pdata.defaultview;
dgexport.allowpaging = false;
dgexport.showheader = false;//去掉标题
dgexport.databind();
string[] arrheader = pheader.split('|');
string strheader = "<table border=\"1\" style=\"background-color:gray;font-weight:bold;\"><tr>";
foreach (string j in arrheader)
{
strheader += "<td>" + j.tostring() + "</td>";
}
strheader += "</tr></table>";
// 返回客户端
dgexport.rendercontrol(htmlwriter);
string strmeta = "<meta http-equiv=\"content-type\" content=\"application/ms-excel; charset=utf-8\"/>";
curcontext.response.write(strmeta + strheader + strwriter.tostring());
curcontext.response.end();
}
}
#endregion
推荐阅读
-
Asp.net中把Excel数据存储至SQL Server中的具体实现方法
-
asp.net中EXCEL数据导入到数据库的方法
-
asp.net中Table生成Excel表格的方法
-
asp.net中EXCEL数据导入到数据库的方法
-
asp.net中Table生成Excel表格的方法
-
asp.net实现将Excel中多个sheet数据导入到SQLSERVER中的方法
-
介绍几个ASP.NET中容易忽略但却很重要的方法函数
-
介绍几个ASP.NET中容易忽略但却很重要的方法函数
-
asp.net DataGridView导出到Excel的三个方法[亲测]
-
asp.net实现数据从DataTable导入到Excel文件并创建表的方法