在导出数据到EXCEL文件后,送到客户端时,出现"打开"或"保存"的提示框,如果客户端是XP的系统,直接点打开时,会出现
"无法找到C:\Documents and Settings\Qiuwenyan\Local Settings\Temporary Internet Files\Content.IE5\45WPQ7KH\文件名[1].xls,请检查文件名的拼写,并检查文件位置是否正确"
的错误提示,无法打开EXCEL文件.经查,是因为EXCEL是想到IE的临时目录中去找那个EXCEL文件的副本打开,但是此EXCEL的副本并非网页中的一部分,因此它不会被保存到IE的临时目录中,从而导致了此错误.求解决方案.PS:在其他的操作系统系统下未发现此问题.
如果点对话框中的"保存"按钮,将EXCEL文件保存到本地再打开,也不会出现任何问题.
"无法找到C:\Documents and Settings\Qiuwenyan\Local Settings\Temporary Internet Files\Content.IE5\45WPQ7KH\文件名[1].xls,请检查文件名的拼写,并检查文件位置是否正确"
的错误提示,无法打开EXCEL文件.经查,是因为EXCEL是想到IE的临时目录中去找那个EXCEL文件的副本打开,但是此EXCEL的副本并非网页中的一部分,因此它不会被保存到IE的临时目录中,从而导致了此错误.求解决方案.PS:在其他的操作系统系统下未发现此问题.
如果点对话框中的"保存"按钮,将EXCEL文件保存到本地再打开,也不会出现任何问题.
If filename <> "" Then
Dim path As String = Server.MapPath(filename)
Dim file As System.IO.FileInfo = New System.IO.FileInfo(path)
If file.Exists Then
Response.Clear()
Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name)
Response.AddHeader("Content-Length", file.Length.ToString())
Response.ContentType = "application/octet-stream"
Response.Filter.Close()
Response.WriteFile(file.FullName)
Response.End()
Else
Response.Write("This file does not exist.")
End If
End If你用这个试下,我这没问题
oDg.DataSource=oDs;
oDg.DataBind();
Page.Response.ContentType ="application/vnd.ms-excel";
Page.Response.Charset = "gb2312";
Page.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Page.Response.AddFileDependency("Report.xls");
Page.Response.AppendHeader("Content-Disposition", "attachment;filename=Report.xls");
Page.Response.ContentType ="application/vnd.ms-excel";
Page.Response.Charset = "gb2312";
Page.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Page.Response.AddFileDependency("Report.xls");
Page.Response.AppendHeader("Content-Disposition", "attachment;filename=Report.xls");
System.IO.StringWriter tw=new System.IO.StringWriter();
HtmlTextWriter hw=new HtmlTextWriter(tw); oDg.RenderControl(hw);
Page.Response.Write(tw.ToString());
Page.Response.End(); oDg.Dispose();
你的IE是6.0么,如果不是,那升级一下看看。
解决的办法是:先将文件存到服务器端,然后象打开页面一样"window.open(文件名)"即可.