C#Web项目中导出数据为Excel
2017-05-27 10:02
543 查看
导出数据为html中表格的形式注入。
public static string ExportExcelByAbs(DataTable DetailDT, string[,] ht, string subhead, string FileName, string userName = null)
{
StringBuilder OutTable = new StringBuilder();
try
{
if (DetailDT != null)
{
OutTable.Append("<table cellspacing=\"0\" cellpadding=\"5\" rules=\"all\" border=\"1\">");
OutTable.Append("<tr style=\"height:50px; font-weight:bold;font-size:20pt\" align=\"center\">");
OutTable.Append("<td colspan='" + Convert.ToString(ht.Length / 2) + "'>");
OutTable.Append(FileName);
OutTable.Append("</td>");
OutTable.Append("</tr>");
if (subhead.Length > 0)
{
OutTable.Append("<tr style=\"height:30px;\" align=\"right\">");
OutTable.Append("<td colspan='" + Convert.ToString(ht.Length / 2) + "'>");
OutTable.Append(subhead);
OutTable.Append("</td>");
OutTable.Append("</tr>");
}
OutTable.Append("<tr style=\"height:30px;\">");
for (int i = 0; i < ht.Length / 2; i++)
{
OutTable.Append("<td>");
OutTable.Append(ht[i, 0]);
OutTable.Append("</td>");
}
OutTable.Append("</tr>");
for (int n = 0; n < DetailDT.Rows.Count; n++)
{
OutTable.Append("<tr style=\"height:30px;\">");
for (int ii = 0; ii < ht.Length / 2; ii++)
{
OutTable.Append("<td>");
string value = DetailDT.Rows
[ht[ii, 1]].ToString();
if (ISNumber(value))
{
value = Math.Abs(Convert.ToDecimal(value)).ToString();
}
OutTable.Append(value);
OutTable.Append("</td>");
}
OutTable.Append("</tr>");
}
OutTable.Append("<tr style=\"height:30px;\">");
OutTable.Append("<td colspan='" + Convert.ToString(ht.Length / 2) + "'><span style=\"width:50%\" align=\"left\">");
OutTable.Append("制表人:" + userName + "\t");
OutTable.Append("</span><span align=\"right\">");
OutTable.Append("制表时间" + DateTime.Now.ToShortDateString());
OutTable.Append("</span></td>");
OutTable.Append("</tr>");
OutTable.Append("</table>");
}
}
catch { }
return OutTable.ToString();
}用到的解析是否为数据的方法
public static bool ISNumber(string numberString)
{
try
{
double num;
num = double.Parse(numberString);
return true;
}
catch
{
return false;
}
}
下面的正式的导出具体方法了。
protected void btnExcel_Click(object sender, EventArgs e)
{
DataTable dtList = new DataTable();
string[,] ht = { { "提现单号", "WithdrawalNo" },
{ "账号类型", "accountName" },
{ "账号信息", "LogName" },
{ "商家名称", "BussinessName" },
{ "商家区域", "ProvinceName" },
{ "提现类型", "moneyName" },
{ "银行/卡号/开户行", "BankName" },
{ "申请金额", "WithdrawalMoney" },
{ "实际金额", "ActualMoney" },
{ "提现前余额", "AgoAccount" },
{ "提现后余额", "AfterAccount" },
{ "审核状态", "auditName" },
{ "打款状态", "flagName" },
{ "打印状态", "printName" },
{ "审核意见", "AuditRemark" },
{ "申请时间", "ApplyTime" },
{ "市场部审核时间", "AuditTime1" },
{ "财务部审核时间", "AuditTime2" }
};
string html = OutputExcel.ExportExcelByAbs(dtList, ht, "", "提现列表", AdminUser.RealName);
ExportDsToXls("提现列表", html);
}
public static string ExportExcelByAbs(DataTable DetailDT, string[,] ht, string subhead, string FileName, string userName = null)
{
StringBuilder OutTable = new StringBuilder();
try
{
if (DetailDT != null)
{
OutTable.Append("<table cellspacing=\"0\" cellpadding=\"5\" rules=\"all\" border=\"1\">");
OutTable.Append("<tr style=\"height:50px; font-weight:bold;font-size:20pt\" align=\"center\">");
OutTable.Append("<td colspan='" + Convert.ToString(ht.Length / 2) + "'>");
OutTable.Append(FileName);
OutTable.Append("</td>");
OutTable.Append("</tr>");
if (subhead.Length > 0)
{
OutTable.Append("<tr style=\"height:30px;\" align=\"right\">");
OutTable.Append("<td colspan='" + Convert.ToString(ht.Length / 2) + "'>");
OutTable.Append(subhead);
OutTable.Append("</td>");
OutTable.Append("</tr>");
}
OutTable.Append("<tr style=\"height:30px;\">");
for (int i = 0; i < ht.Length / 2; i++)
{
OutTable.Append("<td>");
OutTable.Append(ht[i, 0]);
OutTable.Append("</td>");
}
OutTable.Append("</tr>");
for (int n = 0; n < DetailDT.Rows.Count; n++)
{
OutTable.Append("<tr style=\"height:30px;\">");
for (int ii = 0; ii < ht.Length / 2; ii++)
{
OutTable.Append("<td>");
string value = DetailDT.Rows
[ht[ii, 1]].ToString();
if (ISNumber(value))
{
value = Math.Abs(Convert.ToDecimal(value)).ToString();
}
OutTable.Append(value);
OutTable.Append("</td>");
}
OutTable.Append("</tr>");
}
OutTable.Append("<tr style=\"height:30px;\">");
OutTable.Append("<td colspan='" + Convert.ToString(ht.Length / 2) + "'><span style=\"width:50%\" align=\"left\">");
OutTable.Append("制表人:" + userName + "\t");
OutTable.Append("</span><span align=\"right\">");
OutTable.Append("制表时间" + DateTime.Now.ToShortDateString());
OutTable.Append("</span></td>");
OutTable.Append("</tr>");
OutTable.Append("</table>");
}
}
catch { }
return OutTable.ToString();
}用到的解析是否为数据的方法
public static bool ISNumber(string numberString)
{
try
{
double num;
num = double.Parse(numberString);
return true;
}
catch
{
return false;
}
}
下面的正式的导出具体方法了。
protected void btnExcel_Click(object sender, EventArgs e)
{
DataTable dtList = new DataTable();
string[,] ht = { { "提现单号", "WithdrawalNo" },
{ "账号类型", "accountName" },
{ "账号信息", "LogName" },
{ "商家名称", "BussinessName" },
{ "商家区域", "ProvinceName" },
{ "提现类型", "moneyName" },
{ "银行/卡号/开户行", "BankName" },
{ "申请金额", "WithdrawalMoney" },
{ "实际金额", "ActualMoney" },
{ "提现前余额", "AgoAccount" },
{ "提现后余额", "AfterAccount" },
{ "审核状态", "auditName" },
{ "打款状态", "flagName" },
{ "打印状态", "printName" },
{ "审核意见", "AuditRemark" },
{ "申请时间", "ApplyTime" },
{ "市场部审核时间", "AuditTime1" },
{ "财务部审核时间", "AuditTime2" }
};
string html = OutputExcel.ExportExcelByAbs(dtList, ht, "", "提现列表", AdminUser.RealName);
ExportDsToXls("提现列表", html);
}
protected void ExportDsToXls(string fileName, string html) { System.IO.StringWriter tw = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw); Response.Clear(); Response.Charset = "gb2312"; Response.ContentType = "application/vnd.ms-excel"; Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312"); Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName) + ".xls"); Response.Write("<html><head><META http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\"></head><body>"); Response.Write(html); Response.Write(tw.ToString()); Response.Write("</body></html>"); Response.End(); hw.Close(); hw.Flush(); tw.Close(); tw.Flush(); }
相关文章推荐
- web项目实现Excel数据导入导出
- C#中数据以Excel文件形式导出
- C#中导出数据到EXCEL的简单例子
- Web项目中导出数据的一个控件类
- Web页面的数据导出excel时的格式问题
- 从Infragistics UltraWebGrid 导出数据到Excel
- Web页面的数据导出excel时的格式问题
- C# 将数据导出到Excel汇总
- Web页面的数据导出excel时的格式问题(转)
- [转]C#实现MS SQL数据导出到Excel
- 从Infragistics UltraWebGrid 导出数据到 Excel 序列
- C#数据导出到Excel
- [ASP.NET-C#]将DataSet、DataTable中的数据导出为Excel的解决方法
- C# 从windows应用程序导出数据到excel
- 从Infragistics UltraWebGrid 导出数据到Excel再续
- c#导出数据到Excel
- Web页面的数据导出excel时的格式问题
- c#中将数据库数据导出到EXCEL中
- net控件中数据导到Excel的格式 首先,我们了解一下excel从web页面上导出的原理。当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以excel的格式读取它,所以把mime类型设为:application/vnd.ms-excel,当excel读取文件时会以每个cell的格式呈现数据,如果cell没有规定的格式,则excel会以默认的格式去呈现该cell的数据。这样就给我们提供了自定义数据格式的空间,当然我们必须使用excel支持的格式。下面就列出常用的一些格式: 1) 文本
- C#将DataGridView中的数据导出为EXCEL