DataGrid导出EXCEL问题?

500公里之外 2007-03-13 02:27:01
页面A:一个DataGrid,一个导出Excel按纽。
点击按纽,打开另外一个页面B,在页面B中导出Excel

问题:怎么把DataGrid的数据,传到页面B中?
(页面B怎么获得页面A中DataGrid的数据)

导出Excel的代码:
Response.Clear()
Response.Buffer = True
Response.Charset = "utf-8"
Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls")
Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8")
Response.ContentType = "application/ms-excel"
Me.EnableViewState = False
Dim myCItrad As New System.Globalization.CultureInfo("ZH-CN", True)
Dim tw As System.IO.StringWriter
tw = New System.IO.StringWriter
Dim hw As System.Web.UI.HtmlTextWriter
hw = New HtmlTextWriter(tw)
mydatagrid.RenderControl(hw)
Response.Write(tw.ToString())
Response.End()
...全文
309 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
九章落地 2007-03-13
  • 打赏
  • 举报
回复
一般做法都是传查询条件过去!!!

楼主不要钻牛角尖了
daishengs 2007-03-13
  • 打赏
  • 举报
回复
一般做法都是传查询条件过去
smallMage 2007-03-13
  • 打赏
  • 举报
回复
那你做两个页面就可以了,把条件传过去重新得到结果
500公里之外 2007-03-13
  • 打赏
  • 举报
回复
怎么将数据存在cache里面,和获得cache

比如说用来绑定datagrid的数据表是mytable
刀枪blue 2007-03-13
  • 打赏
  • 举报
回复
把DATAGRID得到的数据存SESSION或CACHE里~B页面里直接用不就好了
500公里之外 2007-03-13
  • 打赏
  • 举报
回复
把DataGrid 的datatable 放在cache中,然后b页面读就可以了

能具体说下代码吗??放在cache中,和读取的代码?
Anders_lt 2007-03-13
  • 打赏
  • 举报
回复
把DataGrid 的datatable 放在cache中,然后b页面读就可以了
500公里之外 2007-03-13
  • 打赏
  • 举报
回复
Anders_lt(突破渴望)

打开b的时候根据参数再从数据库中取一下 DataGrid的数据源 ,然后导出到excel中

这个我知道,但是如果是很多个页面要导出,而且参数也不一样

不是要相应做很多的页面


500公里之外 2007-03-13
  • 打赏
  • 举报
回复
方法2:把A导出的eccel 存在临时目录 用B读

如果这样的话,还是在A导出的,A的一些控件还是会失效
Anders_lt 2007-03-13
  • 打赏
  • 举报
回复
打开b的时候根据参数再从数据库中取一下 DataGrid的数据源 ,然后导出到excel中
深度Java 2007-03-13
  • 打赏
  • 举报
回复
方法1:点击A弹出B B直接把数据库的数据生成Excel
方法2:把A导出的eccel 存在临时目录 用B读

//读取excel
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;
namespace net
{
/// <summary>
/// ReaderExcelDataExample 的摘要说明。
/// </summary>
public class ReaderExcelDataExample : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button SubmitBtn;
protected System.Web.UI.WebControls.DataGrid DataGrid1;
protected System.Web.UI.HtmlControls.HtmlInputFile File1;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.SubmitBtn.Click += new System.EventHandler(this.SubmitBtn_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

public void SubmitBtn_Click(object sender, System.EventArgs e)
{
// 获取Excep文件的完整路径
string source = File1.Value;

string ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + source + ";Extended Properties=Excel 8.0";
string query = "SELECT * FROM [Sheet1$]";

OleDbCommand oleCommand = new OleDbCommand(query, new OleDbConnection(ConnStr));
OleDbDataAdapter oleAdapter = new OleDbDataAdapter(oleCommand);
DataSet myDataSet = new DataSet();

// 将 Excel 的[Sheet1]表内容填充到 DataSet 对象
oleAdapter.Fill(myDataSet, "[Sheet1$]");

// 数据绑定
DataGrid1.DataSource = myDataSet;
DataGrid1.DataMember = "[Sheet1$]";
DataGrid1.DataBind();
}
}
}
500公里之外 2007-03-13
  • 打赏
  • 举报
回复
转一个页面,是防止在A页面中的一些控件失效
seemwind 2007-03-13
  • 打赏
  • 举报
回复
是哦,为什么要转到另一个页面呢?
best8625 2007-03-13
  • 打赏
  • 举报
回复
友情帮顶下
Zine_Alone 2007-03-13
  • 打赏
  • 举报
回复
Session可以做到

为何非要转一个页面呢?

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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