ASP.net Gridview控件做导出!

hcy48851437 2012-04-12 04:51:41
环境是vs2010,sql用的2005
1.gridview已经绑定了数据库的数据并且显示出来,但是我想在gridview上面加一个导出button按钮,按了可以导出到EXCEL

2.gridview控件已经绑定数据.... 然后我还想了一种方法就是, 使用reportviewr控件 把gridview控件的信息以传值的方式 传到reporviews控件上去,然后进行导出


注:reporviews控件本身就是一个比较死板的导出控件。 需求上必须要求,数据必须在gridview上面!

希望大家能够帮帮我,谢谢大家。!
...全文
99 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hcy48851437 2012-04-12
  • 打赏
  • 举报
回复
差多了- -。我给你看看我的列子,但是报错了。。
后台:
protected void GridvivwDC_Click(object sender, EventArgs e)//excel导出
{
Response.Clear();
Response.Buffer = true;
Response.Charset = "GB2312";
Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls");
//gaoyang [10/21/2006] 经测试如果设置为 GetEncoding("GB2312"),导出的文件将会出现乱码。
Response.ContentEncoding = System.Text.Encoding.UTF7;

//设置输出文件类型为excel文件
Response.ContentType = "application/ms-excel";
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
this.GridView1.RenderControl(oHtmlTextWriter);
Response.Output.Write(oStringWriter.ToString());
Response.Flush();
Response.End();
}

public override void VerifyRenderingInServerForm(Control control)//重载
{
base.VerifyRenderingInServerForm(control);
}

前台:

<asp:Button ID="GridvivwDC" runat="server" Text="导出" onclick="GridvivwDC_Click"
style="height: 21px" />

这个是我写的,但是报错了...
只能在执行 Render() 的过程中调用 RegisterForEventValidation;

行 249: System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
行 250: System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
行 251: this.GridView1.RenderControl(oHtmlTextWriter);行 252: Response.Output.Write(oStringWriter.ToString());
行 253: Response.Flush();

christ 2012-04-12
  • 打赏
  • 举报
回复
button 下面就是这样的啊
private void simpleButton1_Click(object sender, EventArgs e)
{
DataView dataView = new DataView();
dataView.Table = _dtHistoryPoints;
ExportExcel(dataView);
}
定义一个全局变量Datatable(代码中的_dtHistoryPoints)跟gridview的DataSource一致

我发的这例子是winform里面的 web应该也差不多吧
hcy48851437 2012-04-12
  • 打赏
  • 举报
回复
呵呵,我也是菜鸟,问题在与,前台的那个BUTTON按钮怎么写呢? 谢谢给的方法。
christ 2012-04-12
  • 打赏
  • 举报
回复
datatable导出excel的方法
private void ExportExcel(DataView dv)
{
SaveFileDialog saveFile = new SaveFileDialog();
saveFile.Filter = "Excel files(*.xls)|*.xls";
saveFile.FilterIndex = 0;
saveFile.RestoreDirectory = true;
saveFile.CreatePrompt = true;
saveFile.Title = "导出Excel文件到";
DateTime now = DateTime.Now;
saveFile.FileName = now.ToShortDateString();
saveFile.ShowDialog();

Stream myStream;
myStream = saveFile.OpenFile();
StreamWriter sw = new StreamWriter(myStream, Encoding.GetEncoding("gb2312"));
string str = " ";
//写标题
for(int i = 0 ;i<dv.Table.Columns.Count;i++)
{
if(i>0)
{
str += "\t";
}
str += dv.Table.Columns[i].ColumnName;
}
sw.Write(str);
//写内容
for(int rowNo =0;rowNo<dv.Count;rowNo++)
{
string tempstr = " ";
for(int columnNo =0;columnNo<dv.Table.Columns.Count;columnNo++)
{
if(columnNo>0)
{
tempstr += "\t";
}
tempstr += dv.Table.Rows[rowNo][columnNo].ToString();
}
sw.WriteLine(tempstr);
}
sw.Close();
myStream.Close();
}

private void simpleButton1_Click(object sender, EventArgs e)
{
DataView dataView = new DataView();
dataView.Table = _dtHistoryPoints;
ExportExcel(dataView);
}
我是菜鸟,第二个没看懂是什么

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧