下面代码导出Excel2003没有任何问题: public void Export(string FileName, GridView gridview)
{
//用来控制添加,删除,编辑等按钮不输出,如果没有,可以隐掉代码!
for (int i = this._hidStartPos; i < this._hidEndPos; i++)
{
gridview.Columns[i].Visible = false;
}
Response.Charset = "GB2312";
Response.Write("<meta http-equiv=Content-Type content=text/html;charset=GB2312>");
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
Response.ContentType = "application/ms-excel";//导出excel文件
//this.EnableViewState = false;
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
gridview.AllowPaging = false;//写到Excel的数据不用分页 gridview.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
gridview.AllowPaging = true;//恢复分页
}
但是导出到2007时,导出后用excel 2007打开提示单元格数据量过大 ...然后你们就有一行乱字符数据....求各位给点建议....
{
//用来控制添加,删除,编辑等按钮不输出,如果没有,可以隐掉代码!
for (int i = this._hidStartPos; i < this._hidEndPos; i++)
{
gridview.Columns[i].Visible = false;
}
Response.Charset = "GB2312";
Response.Write("<meta http-equiv=Content-Type content=text/html;charset=GB2312>");
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
Response.ContentType = "application/ms-excel";//导出excel文件
//this.EnableViewState = false;
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
gridview.AllowPaging = false;//写到Excel的数据不用分页 gridview.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
gridview.AllowPaging = true;//恢复分页
}
但是导出到2007时,导出后用excel 2007打开提示单元格数据量过大 ...然后你们就有一行乱字符数据....求各位给点建议....
解决方案 »
- 简单问题
- ispai_rewrite rulrewrite问题
- 对其他系统传递过来的登陆用户,不另外做LOGIN页面,怎样给用户分配权限来显示不同内容??
- 从gridview中导出EXCEL到本地,当gridview有分页时,数据就不能全部导出,如何将数据全部导出?
- 关于Post方法的使用问题.
- 在gridview分页中删除数据
- IE7下EXCEL的下载页面被无声无色的关闭了,没人理我,只好问专家了
- 如何用Cookie获得上次的登陆时间???
- 配置文件
- Form验证问题,大家看一下
- 急急急。。。工具箱没有控件
- |zyciis| 求正则,提取/view_001_002_003.html中的001,002,003
http://topic.csdn.net/u/20100318/11/8984259f-694f-4a97-ba88-73693c54e6cf.html
改成
Response.ContentType = "application/vnd.xls";???
我试过了还是这样啊!
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
HtmlTextWriter htw = new HtmlTextWriter(sw); Page page = new Page();
HtmlForm form = new HtmlForm();
page.Controls.Add(form);
page.RenderControl(htw); Response.Clear();
Response.Buffer = true;
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "attachment;filename=data.xls");
Response.Charset = "UTF-8";
Response.ContentEncoding = Encoding.Default;
Response.Write(sb.ToString());
Response.End();
Response.Buffer = true;
Response.Charset = "GB2312";
Response.Write("<meta http-equiv=Content-Type content=text/html;charset=GB2312>");
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());//FileName.xls");
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.ContentType = "application/vnd.xls";//设置输出文件类型为excel文件。
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
Gridview1.RenderControl(oHtmlTextWriter);
Response.Output.Write(oStringWriter.ToString());
Response.Flush();
Response.End();
这个居然可以,谢谢了!