IE6导出EXCEL的时候文件名丢失,文件后缀名.xls也丢失

时间:2022-05-21 19:24:41
一下代码导出的EXCEL在IE8上都没问题,到了IE6上就出现文件名变了,而且没有后缀名.xls,但是重命名后加上后缀名.xls以后就可以了,里面的数据写入都没错,这是问什么啊,怎么解决 哦????  

public bool OutExcel(HttpContext context)
    {
        try
        {
            string s = context.Request.Form["SelSearch"];
            string s1 = context.Request.Form["HidContent"];
            HttpResponse resp;
            resp = context.Response;
            resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
            string fn = "户表小区:" + DateTime.Now.ToString() + ".xls";
            resp.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlPathEncode(fn));
            resp.ContentType = "Excel";//设置输出文件类型为excel文件。+ ".xls"
            string colHeaders = "";
            string ls_item = "";
            string condition = "";
            if (condition != "")
            {
                switch (s)
                {
                    case "DistName":
                        condition += " DistName=" + s1;
                        break;
                    case "AreaID":
                        condition += GetAreaID(s1);
                        break;

                }
            }
            else
                condition = " 1=1 ";
            DataTable dt = distbll.GetList(condition).Tables[0];
            //表头
            colHeaders += "编号\t";
            colHeaders += "客户编号\t";
            colHeaders += "小区名称\t";
            colHeaders += "所属区域\t";
            colHeaders += "添加时间\t";
            colHeaders += "修改时间\n";
            resp.Write(colHeaders);
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                ls_item += dt.Rows[i]["AutoID"].ToString() + "\t";
                ls_item += dt.Rows[i]["UnitCode"].ToString() + "\t";
                ls_item += dt.Rows[i]["DistName"].ToString() + "\t";
                ls_item += dt.Rows[i]["AreaID"].ToString() + "\t";
                ls_item += dt.Rows[i]["AddTime"].ToString() + "\t";
                ls_item += dt.Rows[i]["ModifiedDate"].ToString() + "\n";
                resp.Write(ls_item);
                ls_item = "";
            }
            resp.End();
            return true;
        }
        catch (Exception ex)
        {
            throw ex;
        }
       
        
    }

3 个解决方案

#1


不是ie版本的问题,是编码的问题的,你用utf-8编码试试。建议excel文件不要用中文名就不会出现这种问题了。

#2


不是程序的问题啊,是IE6版本问题,UTF8只能解决乱码啊,我那是文件后缀名都没了,就算一个固定的英文文件名给他。还是丢失,下面是我用IEtester中ie6测试的:
IE6导出EXCEL的时候文件名丢失,文件后缀名.xls也丢失

#3


哥们,解决没有看,我也遇到这种问题了。IE6下文件名前缀变了而且.xls后缀名也没有了。在IE7,8下面试了都是好的

#1


不是ie版本的问题,是编码的问题的,你用utf-8编码试试。建议excel文件不要用中文名就不会出现这种问题了。

#2


不是程序的问题啊,是IE6版本问题,UTF8只能解决乱码啊,我那是文件后缀名都没了,就算一个固定的英文文件名给他。还是丢失,下面是我用IEtester中ie6测试的:
IE6导出EXCEL的时候文件名丢失,文件后缀名.xls也丢失

#3


哥们,解决没有看,我也遇到这种问题了。IE6下文件名前缀变了而且.xls后缀名也没有了。在IE7,8下面试了都是好的