导出到Excel并且取消默认的科学计算法
Posted Future.Net 博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了导出到Excel并且取消默认的科学计算法相关的知识,希望对你有一定的参考价值。
导出Excel的代码很多,其中这种最简单:
protected void btnDCAll_Click(object sender, EventArgs e)
{
string DataString = DateTime.Now.ToString("yyyyMMddHHmmss");//已当前年月日时分秒做为文件名
Response.Clear();
Response.Buffer = true;
Response.Charset = "GB2312";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + DataString + ".xls");
Response.ContentEncoding = System.Text.Encoding.UTF7;
Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.htmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
this.GridViewAll.RenderControl(oHtmlTextWriter);//GridViewAll是GridView的名字,也可以放到一个Table中或是DataTable中
Response.Output.Write(oStringWriter.ToString());
Response.Flush();
Response.End();
}
public override void VerifyRenderingInServerForm(Control control)
{
}
导出之后,如果数据比较多,会遇到科学计数法问题
解决的方法是:
protected void GridViewAll_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[0].Attributes.Add("style", "vnd.ms-excel.numberformat:@");//你所需要处理的列
//或所有的列
for (int i = 0; i < e.Row.Cells.Count; i++)
{
e.Row.Cells[i].Attributes.Add("style", "vnd.ms-excel.numberformat:@");
}
}
}
以上是关于导出到Excel并且取消默认的科学计算法的主要内容,如果未能解决你的问题,请参考以下文章
php导出excel时数字变成科学计数法,有的单元格内容是#号,最后一条数据跑到第一行的右边,怎么办?
c#中将datagridview中数据导出到excel中,点击保存可以保存,点击取消就出