导出excel,并且解决身份证科学计数发的问题
2014-09-24 16:36
597 查看
protected void Button3_Click(object sender, EventArgs e)
{
string Year = System.DateTime.Now.Year.ToString();
string Month = System.DateTime.Now.Month.ToString();
string Day = System.DateTime.Now.Day.ToString();
string HH = System.DateTime.Now.Hour.ToString();
string mm = System.DateTime.Now.Minute.ToString();
string DateString ="人员报表"+ Year + "-" + Month + "-" + Day + "-" + HH + "-" + mm;
FarmerDA da = new FarmerDA();
DataSet ds = new DataSet();
DataTable dt = new DataTable();
ds = da.QQ_Farmer_Search_excleDA(Sessionid);
if (ds != null)
{
dt = ds.Tables[0];
if (dt != null && dt.Rows.Count > 0)
{
//dt.Columns.Add("style", "vnd.ms-excel.numberformat:@");
//dt.Rows[0]["Birthday"].Add("style", "vnd.ms-excel.numberformat:@");
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.Charset = "";
HttpContext.Current.Response.ContentType = "application/vnd.ms-xls";
HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode(DateString + ".xls"));
StringBuilder table = new StringBuilder();
table.Append("<table style='border:1px solid #000000'><tr>");
for (int i = 0; i < dt.Columns.Count; i++)
{
table.Append("<td>");
table.Append(dt.Columns[i].Caption.ToString()); //标格的标题
table.Append("</td>");
}
table.Append("</tr>");
for (int i = 0; i < dt.Rows.Count; i++)
{
table.Append("<tr>");
for (int j = 0; j < dt.Columns.Count; j++)
{
table.Append("<td style='vnd.ms-excel.numberformat:@'>");
table.Append(dt.Rows[i][j].ToString());
table.Append("</td>");
}
table.Append("</tr>");
}
table.Append("</table>");
HttpContext.Current.Response.Write(table);
HttpContext.Current.Response.End();
}
}
DataTable thisTable = dt;
DataTableExcel(dt, DateString,"a|b|c|d");
}
#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
public override void VerifyRenderingInServerForm(Control control)
{
// Confirms that an HtmlForm control is rendered for
}
{
string Year = System.DateTime.Now.Year.ToString();
string Month = System.DateTime.Now.Month.ToString();
string Day = System.DateTime.Now.Day.ToString();
string HH = System.DateTime.Now.Hour.ToString();
string mm = System.DateTime.Now.Minute.ToString();
string DateString ="人员报表"+ Year + "-" + Month + "-" + Day + "-" + HH + "-" + mm;
FarmerDA da = new FarmerDA();
DataSet ds = new DataSet();
DataTable dt = new DataTable();
ds = da.QQ_Farmer_Search_excleDA(Sessionid);
if (ds != null)
{
dt = ds.Tables[0];
if (dt != null && dt.Rows.Count > 0)
{
//dt.Columns.Add("style", "vnd.ms-excel.numberformat:@");
//dt.Rows[0]["Birthday"].Add("style", "vnd.ms-excel.numberformat:@");
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.Charset = "";
HttpContext.Current.Response.ContentType = "application/vnd.ms-xls";
HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode(DateString + ".xls"));
StringBuilder table = new StringBuilder();
table.Append("<table style='border:1px solid #000000'><tr>");
for (int i = 0; i < dt.Columns.Count; i++)
{
table.Append("<td>");
table.Append(dt.Columns[i].Caption.ToString()); //标格的标题
table.Append("</td>");
}
table.Append("</tr>");
for (int i = 0; i < dt.Rows.Count; i++)
{
table.Append("<tr>");
for (int j = 0; j < dt.Columns.Count; j++)
{
table.Append("<td style='vnd.ms-excel.numberformat:@'>");
table.Append(dt.Rows[i][j].ToString());
table.Append("</td>");
}
table.Append("</tr>");
}
table.Append("</table>");
HttpContext.Current.Response.Write(table);
HttpContext.Current.Response.End();
}
}
DataTable thisTable = dt;
DataTableExcel(dt, DateString,"a|b|c|d");
}
#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
public override void VerifyRenderingInServerForm(Control control)
{
// Confirms that an HtmlForm control is rendered for
}
相关文章推荐
- 导出Excel,身份证号码默认为成科学计数形式,解决方法.
- asp.net导出excel科学计数问题
- 一个高效的导出Excel方法,并且已解决导出会有样式文件夹的问题
- php导出数据到excel,防止身份证等数字字符格式变成科学计数的方法
- 解决 PHPEXCEL 纯数字 科学计数的问题
- 解决导出Excel时身份证的问题
- GridView导出excel出现科学计数的解决办法
- php导出数据到excel,防止身份证等数字字符格式变成科学计数的方法
- php导出数据到excel,防止身份证等数字字符格式变成科学计数的方法
- Java如何解决Excel导入文件时科学计数问题
- php中导出数据到excel时数字变为科学计数的解决方法
- GridView导出Excel出现科学计数的解决办法
- 数据窗口导出excel时,编号变成科学计数的解决办法
- php导出数据到excel,防止身份证等数字字符格式变成科学计数的方法
- PHPExcel导出问题,如何设置文本为无科学计数
- 将GridView中的数据导出到Excel中下载并且解决乱码的问题
- php导出数据到excel,防止身份证等数字字符格式变成科学计数的方法
- sqlserver导入excel的电话号码(身份证)变为科学计数解决方式
- GridView导出Excel出现科学计数的解决办法
- php导出数据到excel,防止身份证等数字字符格式变成科学计数的方法