curContext.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
curContext.Response.ContentEncoding = System.Text.Encoding.UTF8;
curContext.Response.Charset = "GB2312";
strWriter = new StringWriter();
htmlWriter = new HtmlTextWriter(strWriter);
dgExport = new GridView();
dgExport.DataSource = dtData.DefaultView;
dgExport.AllowPaging = false;
dgExport.DataBind();
dgExport.RenderControl(htmlWriter);
curContext.Response.Write(strWriter.ToString().ToCharArray(), 0, strWriter.ToString().ToCharArray().Length);
curContext.Response.End();
4 个解决方案
#1
推测可能是生成Excel文件的时候是按照xls格式生成的,所以输出按照xlsx就无法打开
#2
那就修改成xls下载被 对你来说 直接删除一个代码就行了.
并且来说 你是下载 当然是越低越好了..
另外来说. 你这方式早多少年前就没人用了.
除了基本的"table" 啥也不行. 现在最起码的 也得上npoi啊..
并且来说 你是下载 当然是越低越好了..
另外来说. 你这方式早多少年前就没人用了.
除了基本的"table" 啥也不行. 现在最起码的 也得上npoi啊..
#3
你电脑的office 版本太低了 只支持.xls 格式
.xlsx格式是高版本的 office 2007版以后的扩展名才是.xlsx
和你代码没关系
.xlsx格式是高版本的 office 2007版以后的扩展名才是.xlsx
和你代码没关系
#4
个人思路是在下载的时候加入一个office版本的判断,然后根据不同的版本实现保存方式
#1
推测可能是生成Excel文件的时候是按照xls格式生成的,所以输出按照xlsx就无法打开
#2
那就修改成xls下载被 对你来说 直接删除一个代码就行了.
并且来说 你是下载 当然是越低越好了..
另外来说. 你这方式早多少年前就没人用了.
除了基本的"table" 啥也不行. 现在最起码的 也得上npoi啊..
并且来说 你是下载 当然是越低越好了..
另外来说. 你这方式早多少年前就没人用了.
除了基本的"table" 啥也不行. 现在最起码的 也得上npoi啊..
#3
你电脑的office 版本太低了 只支持.xls 格式
.xlsx格式是高版本的 office 2007版以后的扩展名才是.xlsx
和你代码没关系
.xlsx格式是高版本的 office 2007版以后的扩展名才是.xlsx
和你代码没关系
#4
个人思路是在下载的时候加入一个office版本的判断,然后根据不同的版本实现保存方式