asp.net导出excel及科学计数问题

本文介绍了一种使用 ASP.NET 进行 Excel 导出的方法,重点在于如何防止数字列被 Excel 识别为科学计数法,通过设置单元格属性实现了正确的格式显示。

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

转自:http://www.cnblogs.com/legend_sun/archive/2009/02/17/1392493.html

导出最简单方法:

const string style = @"<style> .text { mso-number-format:\@; } </style> " ;
            Response.ClearContent();

            Response.AddHeader(
"content-disposition""attachment; filename=" + Server.UrlEncode(Name) + ".xls" );

            Response.ContentType 
= "application/excel" ;

            StringWriter sw 
= new  StringWriter();

            HtmlTextWriter htw 
= new  HtmlTextWriter(sw);
            
//htw.WriteLine(Name);
            System.Web.UI.LiteralControl lt = new  LiteralControl();
            lt.Text 
= "<div style=\"width:100%;font-bold:true;text-align:center;\">" +Name + "</div>" ;
            
if(Name!="" )lt.RenderControl(htw);
            gvdata.RenderControl(htw);
            
// Style is added dynamically

            Response.Write(style);

            Response.Write(sw.ToString());

            Response.End();

 

导出出现科学计数解决办法一:

 

GridView gvdata = new  GridView();
                gvdata.HeaderStyle.BackColor 
=  System.Drawing.Color.Silver;
                gvdata.HeaderStyle.Font.Bold 
= true ;
                gvdata.HeaderStyle.HorizontalAlign 
=  HorizontalAlign.Center;
                gvdata.RowDataBound 
+= new  GridViewRowEventHandler(gvdataRowDataBound);
                gvdata.DataSource 
=  dtData;
                gvdata.DataBind();
                
const string style = @"<style> .text {mso-number-format:\@; } </style> " ;
                Response.ClearContent();

                Response.AddHeader(
"content-disposition""attachment; filename=" + Server.UrlEncode(strFileName) + ".xls" );

                Response.ContentType 
= "application/excel" ;

                StringWriter sw 
= new  StringWriter();

                HtmlTextWriter htw 
= new  HtmlTextWriter(sw);
                
//htw.WriteLine(Name);
                System.Web.UI.LiteralControl lt = new  LiteralControl();
                lt.Text 
= "<div style=\"width:100%;font-bold:true;text-align:center;\">" + strFileName + "</div>" ;
                
if (strFileName != "" ) lt.RenderControl(htw);
                gvdata.RenderControl(htw);
                
// Style is added dynamically

                Response.Write(style);

                Response.Write(sw.ToString());

                Response.End();
    
public void gvdataRowDataBound(object  sender, GridViewRowEventArgs e)
    {
        
if (e.Row.RowType ==  DataControlRowType.DataRow)
        {
            e.Row.Cells[
0].Attributes.Add("style""vnd.ms-excel.numberformat:@" );
            e.Row.Cells[
2].Attributes.Add("style""vnd.ms-excel.numberformat:@" );
        }
    }
另注:  // 1)  文本:vnd.ms-excel.numberformat:@
         
// 2)  日期:vnd.ms-excel.numberformat:yyyy/mm/dd
        
// 3)  数字:vnd.ms-excel.numberformat:#,##0.00
        
// 4)  货币:vnd.ms-excel.numberformat:¥#,##0.00
        
// 5)  百分比:vnd.ms-excel.numberformat: #0.00%

转载于:https://www.cnblogs.com/littlebird/archive/2009/07/28/1533087.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值