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测试的:
#3
哥们,解决没有看,我也遇到这种问题了。IE6下文件名前缀变了而且.xls后缀名也没有了。在IE7,8下面试了都是好的
#1
不是ie版本的问题,是编码的问题的,你用utf-8编码试试。建议excel文件不要用中文名就不会出现这种问题了。
#2
不是程序的问题啊,是IE6版本问题,UTF8只能解决乱码啊,我那是文件后缀名都没了,就算一个固定的英文文件名给他。还是丢失,下面是我用IEtester中ie6测试的:
#3
哥们,解决没有看,我也遇到这种问题了。IE6下文件名前缀变了而且.xls后缀名也没有了。在IE7,8下面试了都是好的