网站链接: 我爱捣鼓
当前位置: 首页 > web开发  > Asp.net/C#

gridview导出excel文档中长数字显示E+不全怎么解决?

2021/7/12 20:32:55

一个现成的excel文档某一列因为数字过长会显示例如“3.4222E+13”这样的格式,如何把数字显示完整?其实很简单,就是把这一列的格式变成文本就解决了,但如何在gridview导出的excel文档中使这部分数字内容显示正常呢?我们来看看具体的实现代码:/// <summary>/// …

      一个现成的excel文档某一列因为数字过长会显示例如“3.4222E+13”这样的格式,如何把数字显示完整?其实很简单,就是把这一列的格式变成文本就解决了,但如何在gridview导出的excel文档中使这部分数字内容显示正常呢?我们来看看具体的实现代码:

/// <summary>
/// 将网格数据导出到Excel
/// </summary>
/// <param name="ctrl">网格名称(如GridView1)</param>
/// <param name="FileType">要导出的文件类型(Excel:application/ms-excel)</param>
/// <param name="FileName">要保存的文件名</param>
public static void GridViewToExcel(Control ctrl, string FileType, string FileName)
{
HttpContext.Current.Response.Charset = "GB2312";
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, System.Text.Encoding.GetEncoding("GB2312")).ToString());
HttpContext.Current.Response.ContentType = FileType;//image/JPEG;text/HTML;image/GIF;vnd.ms-excel/msword
HttpContext.Current.Response.Write("<meta http-equiv=Content-Type content=\"text/html; charset=GB2312\">");//此行代码能保证导出的excel文件的中文不乱码
ctrl.Page.EnableViewState = false;
string strStyle = "<style>td{mso-number-format:\"\\@\";}</style>";//此行能使数值显示为字符串
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
tw.WriteLine(strStyle);
ctrl.RenderControl(hw);
HttpContext.Current.Response.Write(tw.ToString());
HttpContext.Current.Response.End();
}

      对的,关键就是这句话,string strStyle = "<style>td{mso-number-format:\"\\@\";}</style>";,它的作用就是将内容的每一列都按照文本去处理。

      以上就是gridview导出excel文档中长数字显示E+不全的解决方法,不知道大家有什么更优的方案吗,如果有的话,记得分享给我哦,感谢您访问“我爱捣鼓(www.woaidaogu.com)”网站的内容,希望对大家有所帮助!引用本文内容时,请注明出处!谢谢合作!

相关资讯

  • C#怎么获取文件夹里所有的图片文件?

    在实际的程序开发中,我们经常需要获取某个文件夹下的所有图片,用到了C#的DirectoryInfo、GetFiles等文件操作方法,具体实现如下://自定义一个结构public struct sFileInfo{ public string FileName; public DateTime FileCreateTime;}protected void Page_Load(…

    2021/3/4 21:48:01
  • c#实现日期时间与unix时间戳互相转换

    为什么使用时间戳?关于Unix时间戳,大概是这个意思,从1970年0时0分0秒开始到现在的秒数.使用它来获得的是一个INT值,储存在数据库里只要使用INT格式就可以了,方便数据库进行排序,搜索,而且比datetime格式更节省数据库空间。 /// <summary> /// Uni…

    2021/3/4 21:40:22