网站链接: 我爱捣鼓
当前位置: 首页 > 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)”网站的内容,希望对大家有所帮助!引用本文内容时,请注明出处!谢谢合作!

相关资讯

  • Visual Studio2010代码块区域折叠起来的快捷键CTRL+K+S

    加#region和#endregion的作用主要是 :可以将这块区域的代码折叠起来,便于查看。 快捷键 CTRL + K + S,选第二个。也可以点击鼠标右键选择‘外侧代码’找到它。 必须是成对出现。就像是一对括号。只是不会被编译。 通过以上内容我们知道了Visual S…

    2021/10/18 21:46:33
  • C#如何判断两个时间的大小?

    C#如何判断两个时间的大小? 其实很简单,我们可以通过C#的一个方法就能解决,下面我们就来说说这个方法。 C# 时间比较方法DateTime.Compare public static int Compare(DateTime t1,DateTime t2) 返回值类型:System.Int32 当结果<0时表…

    2021/10/15 21:42:07
  • 如果房东的猫知道这个她就不会再问今天是星期几了!

    房东的猫如果会敲代码,写个这么简单的小程序她就不会成天喊叫"今天是星期几"了。 /// <summary> /// 获得今天星期几的函数 /// </summary> /// <returns></returns> public string GetDayOfWeek(…

    2021/10/15 21:38:13
  • C#使用身份证号码判断用户是否未成年

    C#如何使用身份证号码来判断用户是否未成年,今天我们就来看看这个C#方法怎么写。 /// <summary> /// 使用身份证号码判断用户是否未成年 /// </summary> /// <param name="num"></param> /// <…

    2021/10/15 21:32:45