//导出数据为excel,同时将gridview中隐藏了的字段同样也导入到excel中
Response.Clear();
Response.Buffer = true;
Response.Charset = "GB2312";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode("员工信息记录.xls", System.Text.Encoding.UTF8));
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
//设置输出文件类型为excel文件。
Response.ContentType = "application/ms-excel";
Response.Write("<meta http-equiv=Content-Type content=\"text/html; charset=GB2312\">");
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
gvUserInfo.AllowPaging = false;
gvUserInfo.Columns[0].Visible = false;
//得出gridview中的字段总数
int colCount = gvUserInfo.Columns.Count;
for (int i = 1; i < colCount; i++)
{
//循环将每个列的可见度设定为true
gvUserInfo.Columns[i].Visible = true;
}
//将最后二列的可见度设定为FALSE
gvUserInfo.Columns[colCount - 1].Visible = false;
gvUserInfo.Columns[colCount - 2].Visible = false;
this.gvUserInfo.RenderControl(oHtmlTextWriter);
Response.Output.Write(oStringWriter.ToString());
Response.Flush();
Response.End();以上是我到处数据为excel的代码,但是在到处后查看数据显示不完整,有些列没有数据!!!
解决方案 »
- 请问GridView的EmptyDataTemplate和EmptyDataText两个属性有什么区别?
- 怎样与斑竹联系啊?
- 在框架集中显示TreeView的节点所链接到的页面
- 怎么样写出下面的形式的代码????
- EXCEL不能推出进程????
- 强名称---PublicKey和PublicKeyToken是怎么产生的?
- 如何在页面里动态创建 ascx 控件?顶者有分。
- 未能找到存储过程 'NewsPass'--请高手近来帮我解决一下(郁闷了一天了也没有找到问题所在)!!!!!!!
- 如何下载IE Web Controls(控件库)?给分!
- 服务器控件中的treeView打开后,遮不住dropDown??
- 如何创建 aspx.cs文件
- 关于所在浏览者所在位置的问题
试试
建议你还是从gridview数据源导吧,那样就不存在是否隐藏列的问题了,你想要什么数据就要什么数据
1.你在 for (int i = 1; i < colCount; i++)
{
//循环将每个列的可见度设定为true
gvUserInfo.Columns[i].Visible = true;
}
这一段之后加一条语句,将页面gridview控件重新绑定一下试试。(我觉得最可能是这个原因)2.
还是上面那段,做成一个函数,在导出excel的首行代码执行前执行。
列1 列2(隐藏) 列3
列1和列3的下边还是[0]和[2].
如果你想简便一点的话,可以建议流程如下:
1.在导出事件发生时,将你需要导出的列全部显示,然后将gridview重新绑定一遍;
2.执行导出excle;
3.导出完以后,将你不需要在画面上显示的列隐藏,再次重新绑定gridview;
我想应该能达到你要的效果了...
但是我还是建议最好从 数据源导出到excle