环境是vs2010,sql用的2005
1.gridview已经绑定了数据库的数据并且显示出来,但是我想在gridview上面加一个导出button按钮,按了可以导出到EXCEL 2.gridview控件已经绑定数据.... 然后我还想了一种方法就是, 使用reportviewr控件 把gridview控件的信息以传值的方式 传到reporviews控件上去,然后进行导出
注:reporviews控件本身就是一个比较死板的导出控件。 需求上必须要求,数据必须在gridview上面! 希望大家能够帮帮我,谢谢大家。!
1.gridview已经绑定了数据库的数据并且显示出来,但是我想在gridview上面加一个导出button按钮,按了可以导出到EXCEL 2.gridview控件已经绑定数据.... 然后我还想了一种方法就是, 使用reportviewr控件 把gridview控件的信息以传值的方式 传到reporviews控件上去,然后进行导出
注:reporviews控件本身就是一个比较死板的导出控件。 需求上必须要求,数据必须在gridview上面! 希望大家能够帮帮我,谢谢大家。!
解决方案 »
- 如何写一个类,使它不能用new实例化,而只能由另一个类的方法产生,如何写?
- DateTime? 类型
- C#窗体中的控件如何随窗体的变动(如最大化)而变动(相对位置不变)
- 关于lucene.net里面的 Indexmodifier的效率问题,请大侠指教啊
- netframework 界面重绘的处理
- 有一段文字,是从网页上复制下来的,包括了两段重复的文字,粘贴到textbox里面去,要把它单独提取一段出来
- 在线等C#高手解答
- (多线程)sleep和join有什么区别?
- 我一直郁闷的是:大哥们怎么能把API函数记得那么牢啊,我总是记 不住,能不能指点哈呢?
- 怎么能实现在以生成的rpt的报表中实现随机的查询!!!各位兄弟帮帮忙,憋了好几天的也没有实现,急死了
- 求教:网页抓取报:502网关错误
- C#链接异地MYSQL
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);
}
我是菜鸟,第二个没看懂是什么
private void simpleButton1_Click(object sender, EventArgs e)
{
DataView dataView = new DataView();
dataView.Table = _dtHistoryPoints;
ExportExcel(dataView);
}
定义一个全局变量Datatable(代码中的_dtHistoryPoints)跟gridview的DataSource一致我发的这例子是winform里面的 web应该也差不多吧
后台:
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();