Heim  >  Artikel  >  php教程  >  GridView 导入Excel

GridView 导入Excel

WBOY
WBOYOriginal
2016-06-06 20:01:321055Durchsuche

%@ Page EnableEventValidation="false" % 一、引用如下命名空间 using System.IO; using System.Text; Response.ClearContent(); Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF8");//防止乱码 string stuname = System.Web.HttpUtilit

 

        

 

 

 

一、引用如下命名空间
using System.IO;
using System.Text;

 

 

 

Response.ClearContent();

 

Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF8");//防止乱码

 

        string stuname = System.Web.HttpUtility.UrlEncode(this.j.Text.Trim() + "成绩单", System.Text.Encoding.UTF8);

        Response.AddHeader("content-disposition", "attachment; filename=" + stuname + ".xls");

        Response.ContentType = "application/excel";

 

        StringWriter sw = new StringWriter();

        sw.WriteLine("

大学学生成绩表

");

        sw.WriteLine("院系:" + this.yx.Text + "     " + "学制:" + "       " + "入学时间:" + "   " + "学号:" + this.xuehao.Text);

        sw.WriteLine("
专业:" + this.zy.Text + "     培养层次:" + this.chenci.Text + "      毕业时间:             姓名:" + this.j.Text);

        HtmlTextWriter htw = new HtmlTextWriter(sw);

        GridView1.RenderControl(htw);

        Response.Write(sw.ToString());

        Response.End();

 

 

    public override void VerifyRenderingInServerForm(Control control)
    {
    }

 

 

 

在导出的时候,如果某个字段为长数字(如身份证号码511922198507151512)、以0开头的编号(如0809111212)之类的数据。如果不加处理在导出的Excel文件中将会被分别当作5.11922E+17和809111212来处理,这样与我们要达到 的实际效果不一致。所以我们要加以处理,即给单元格数据规定格式。常见的格式如下:

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%

使用方法如下:

//给第一个单元格设置格式为

e.Item.Cells[0].Attributes.Add("style","vnd.ms-excel.numberformat:@");

//给第四个单元格设置格式为
e.Item.Cells[3].Attributes.Add("style","vnd.ms-excel.numberformat:¥#,###.00");

 

解决乱码:

 

Response.ContentType = "application/excel";

        Response.Write("");

 

 

Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");

 

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn