经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MS SQL Server » 查看文章
C# 将datatable导出成Excel
来源:cnblogs  作者:赫曦  时间:2019/4/18 11:37:22  对本文有异议

public void Result( )
{

try
{
StringBuilder sql = new StringBuilder();
List<SqlParameter> parameters = new List<SqlParameter>();

sql.Append(@"sql 查询语句");
DataTable dt = DbHelperSQL.Query(sql.ToString()).Tables[0];
StringBuilder TableHead = new StringBuilder();
StringBuilder TableFoot = new StringBuilder();
TableHead.Append("<tr style=\"font-weight: bold; white-space: nowrap;\">")
.Append("<td rowspan =\"2\"></td></tr>")
.Append("<tr></tr>");
TableFoot.Append("<tr><td colspan = \"4\">导出时间:" + DateTime.Now.ToString("yyyy年MM月dd日 HH:mm:ss") + "</td></tr>");
DataTableToExcel(dt, TableHead.ToString(), TableFoot.ToString(), name + "汇总_" + DateTime.Now.ToString("yyyyMM"));

}
catch (Exception ex)
{

}
}

/// <summary>
/// DataTable导出Excel
/// </summary>
/// <param name="data">集合</param>
/// <param name="ChartHead">表头</param>
/// <param name="fileName">文件名称</param>
public static void DataTableToExcel(DataTable data, string ChartHead, string ChartFoot, string fileName)
{
HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
HttpContext.Current.Response.ContentEncoding = Encoding.UTF8;
HttpContext.Current.Response.Charset = "Utf-8";
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName + ".xls", Encoding.UTF8));
StringBuilder sbHtml = new StringBuilder();
sbHtml.AppendLine("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">");
sbHtml.AppendLine("<table cellspacing=\"0\" cellpadding=\"5\" rules=\"all\" border=\"1\">");
//写出表头
sbHtml.AppendLine(ChartHead);
string NumberAsTextExp = "vnd.ms-excel.numberformat:@";
//写数据
foreach (DataRow row in data.Rows)
{
sbHtml.Append("<tr>");
for (int i = 0; i < row.ItemArray.Count(); i++)
{
if (row[i].GetType() == typeof(string))
{
sbHtml.Append("<td style='" + NumberAsTextExp + "'>").Append(row[i]).Append("</td>");
}
else
{
sbHtml.Append("<td>").Append(row[i]).Append("</td>");
}
}
sbHtml.AppendLine("</tr>");
}
//写汇总行
sbHtml.AppendLine(ChartFoot);
sbHtml.AppendLine("</table>");
HttpContext.Current.Response.Write(sbHtml.ToString());
HttpContext.Current.Response.End();
}

原文链接:http://www.cnblogs.com/hexi707/p/10727889.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号