DataGrid格式化输出到Excel表

本文介绍了一种从ASP迁移到.NET项目时输出数据到Excel的方法,并解决了输出时0开头的数字丢失问题。通过格式化输出,确保了数据在Excel中的正确显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以前用ASP的时候,也使用过输出到EXCEL或者WORD的方法;

并且在些次开发.NET项目中也照搬ASP的方法过来,特别是在输出一些数据统计和备份的时候,使用输出到EXCEL更加明了,排版也更加清晰…… 但很快,我就发现一个问题,比如说:“我在给一个游戏帐号充值的时候,此帐号名称为0开头的帐号,这样的结果输出到Excel的时候,前面的0你会发现不见了”,这就是没有格式化输出的原因

 //以下这段代码是放到Page_Load()里面

Response.Clear();
                Response.Charset
="GB2312";
                
string filename="ReChargeReport"+Convert.ToDateTime(Request.QueryString["s"]).ToString("yyyy-MM");
                Response.AddHeader(
"Content-Disposition""attachment; filename="+filename+".xls");
                Response.ContentEncoding 
= System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文
                Response.ContentType="application/vnd.ms-excel";
                
this.EnableViewState = false;
                System.Globalization.CultureInfo myCItrad 
= new System.Globalization.CultureInfo("ZH-CN",true);
                System.IO.StringWriter oStringWriter 
= new System.IO.StringWriter(myCItrad); 
                System.Web.UI.HtmlTextWriter oHtmlTextWriter 
= new System.Web.UI.HtmlTextWriter(oStringWriter);
                
this.DataGrid1.RenderControl(oHtmlTextWriter); 
                Response.Write(oStringWriter.ToString());
                Response.End();

 

以下代码(就是格式化输出各项字段)(不要忘了事件的映射):

        private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
        
{
            
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            
{
                e.Item.Cells[
0].Attributes.Add("style","vnd.ms-excel.numberformat:0");
                e.Item.Cells[
1].Attributes.Add("style","vnd.ms-excel.numberformat:@");
                e.Item.Cells[
2].Attributes.Add("style","vnd.ms-excel.numberformat:@");
                e.Item.Cells[
3].Attributes.Add("style","vnd.ms-excel.numberformat:yyyy年mm月dd日-hh:mm:ss");
                e.Item.Cells[
4].Attributes.Add("style","vnd.ms-excel.numberformat:@");
                e.Item.Cells[
5].Attributes.Add("style","vnd.ms-excel.numberformat:¥#,###.00");
                e.Item.Cells[
6].Attributes.Add("style","vnd.ms-excel.numberformat:0");
            }


        }

 

这样做只有一个目的,使输出的信息格式化...并能够完整地在Excel中显示出来。按所要求的格式排好版
查阅起来更加直观...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值