现在的位置: 首页 > 综合 > 正文

导入excel 注意:1:格式化导入excel 里面的数据 2:Response.Clear();据说没有这会导致乱码

2013年12月24日 ⁄ 综合 ⁄ 共 1813字 ⁄ 字号 评论关闭

 protected void Button1_Click(object sender, EventArgs e)
    {
        Response.Clear();
        Response.Buffer
= true;
        Response.Charset
= "GB2312"
;
        Response.AppendHeader(
"Content-Disposition", "attachment;filename=FileName.xls");
        Response.ContentEncoding
= System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文
        Response.ContentType = "application/ms-excel";//设置输出文件类型为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();
    }

1:  

 

 protected void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
    {
       
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            e.Item.Cells[
0].Attributes.Add("style", "vnd.ms-excel.numberformat:@");
            e.Item.Cells[
3].Attributes.Add("style", "vnd.ms-excel.numberformat:¥#,###.00");
        }
    }
 

关健是这两句啦

e.Item.Cells[0].Attributes.Add("style", "vnd.ms-excel.numberformat:@");//格式字符串比如080001没有这句话就会变成80001
            e.Item.Cells[
3].Attributes.Add("style", "vnd.ms-excel.numberformat:¥#,###.00");

还有其它

       首先,我们了解一下excel从web页面上导出的原理。当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以excel的格式读取它,所以把mime类型设为:application/vnd.ms-excel,当excel读取文件时会以每个cell的格式呈现数据,如果cell没有规定的格式,则excel会以默认的格式去呈现该cell的数据。这样就给我们提供了自定义数据格式的空间,当然我们必须使用excel支持的格式。下面就列出常用的一些格式:
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%

抱歉!评论已关闭.