获得GridView的数据源
连接数据库后我将数据读入DataSet ds中,将ds绑定到GridView1,GridView1.DataSource = ds;
GridView1.DataBind();
现在我想把GridView1中的全部信息保存为excel,但试了几种方法都只是保存的当前页的信息,所以想获得GrideView1的数据源信息ds,然后保存ds就可以了,不知道是不是可行,请高手指教。谢谢啦! --------------------编程问答-------------------- 没弄过excel,理论上来说这样好像可以&&自己试试不就知道行不行了吗? --------------------编程问答-------------------- 建议一对一绑定
dataset[表名] workbook[工作薄名] --------------------编程问答-------------------- 如果你是在后台将GridView作Render取html的方式导出excel的话,只需在导出时取消分页,将所有数据都绑定出来再导出即可;如果是以excel.application的方式导出,则获取ds直接自定义绘制即可 --------------------编程问答-------------------- 将GridView1的分页取消就可以了 --------------------编程问答--------------------
public void CreatExcel(System.Data.DataTable dt,System.Web.UI.Page thisPage)
{
StringWriter sw = new StringWriter();
string rowStr = "";
//取所有列名
for (int i = 0; i < dt.Columns.Count; i++)
{
rowStr = rowStr + dt.Columns[i] + "\t";
}
sw.WriteLine(rowStr);
//取每行数据
for (int j = 0; j < dt.Rows.Count; j++)
{
rowStr = "";
for (int i = 0; i < dt.Columns.Count; i++)
{
rowStr = rowStr + dt.Rows[j][i].ToString() + "\t";
}
sw.WriteLine(rowStr);
}
sw.Close();
string filename = DateTime.Now.ToString("yyyyMMddhhmmss");
//System.Web.UI.Page pp= new Page();
thisPage.Response.AddHeader("Content-Disposition", "attachment;filename=" + filename + ".xls");
thisPage.Response.ContentType = "application/ms-excel";
thisPage.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
thisPage.Response.Write(sw);
thisPage.Response.End();
}
或者你用下边的..导的时候把分页啥的全取消.然后再绑一次.导出就是全部的了
public void ExportToExcel(string Filename, DataGrid gridview, Page page)--------------------编程问答-------------------- mark. --------------------编程问答-------------------- 有一比较笨的方法,就是页面放两个GRIDVIEW一个分页一个不分页,
{
gridview.AllowSorting = false;
gridview.AllowPaging = false;
gridview.HeaderStyle.ForeColor = System.Drawing.Color.Black;
DataTable temp = (DataTable)ViewState["view"];
gridview.DataSource = temp;
gridview.DataBind();
page.Response.Clear();
// 防止中文内容为乱码
page.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
//可令中文文件名不为乱码
page.Response.AppendHeader("content-disposition", "attachment;filename=\"" + System.Web.HttpUtility.UrlEncode(Filename + DateTime.Now.ToShortDateString(), System.Text.Encoding.UTF8) + ".xls\"");
System.IO.StringWriter sw = new System.IO.StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
gridview.RenderControl(htw);
page.Response.Write(sw.ToString());
page.Response.End();
}
分页显示,不分页的隐藏
导出的时候导出的不分页的GRIDVIEW --------------------编程问答-------------------- UP 多谢lovehongyun !
补充:.NET技术 , ASP.NET