求DataGrid按选择项导出Excel方法

sunshushou 2006-11-22 10:45:27
现在我的DataGrid第一列是选择列,如何能按用户选择的记录导出Excel,用户选择几条记录就导出几条到Excel?谢谢!
...全文
250 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cpp2017 2006-11-22
  • 打赏
  • 举报
回复
导出前根据所选记录在DataView中进行筛选,绑定到DataGrid,然后rendercontrol
sunshushou 2006-11-22
  • 打赏
  • 举报
回复
怎么都没人关注一下呀,拜脱高手快点现身吧!
poorman19821018 2006-11-22
  • 打赏
  • 举报
回复
学习中
snoopymin 2006-11-22
  • 打赏
  • 举报
回复
关注下..
sunshushou 2006-11-22
  • 打赏
  • 举报
回复
谢谢楼上提供的代码,我试试看先啊!
nimeide1234567890 2006-11-22
  • 打赏
  • 举报
回复
<%@ Page language="c#" Src="excel.cs" AutoEventWireup="false" Inherits="DataGrid_import_WordExcel.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>OutPutExcel</title>
</HEAD>
<link rel="stylesheet" href="Style.css" type="text/css">
<body>
<form id="Form1" method="post" runat="server">
<table width="170%"><tr><td>
<asp:datagrid
id="DataGrid1"
bgcolor="#efefef"
HeaderStyle-BackColor="#718BD6"
HeaderStyle-ForeColor="#FFFF66"
AlternatingItemStyle-BackColor="#FFFFFF"
itemstyle-backcolor="#FFFFFF"
runat="server">
<ItemStyle HorizontalAlign="center" Height="20"></ItemStyle>
<Columns>

</Columns>
</asp:datagrid>
</td></tr></table>
<P>
<asp:button id="Btn_Import_Excel" runat="server" Text="轉到EXCEL"></asp:button></P>
</form>
</body>
</HTML>
-----------------------
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.IO;
using System.Data.SqlClient ;
using System.Text;
using System.Configuration;

namespace DataGrid_import_WordExcel
{

public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button BtnImportWord;
protected System.Web.UI.WebControls.Button Btn_Import_Excel;
protected System.Web.UI.WebControls.DataGrid DataGrid1;
public DataRow dr;
private DataSet myDS =new DataSet();

private void Page_Load(object sender, System.EventArgs e)
{
//CreateDataSet();
Data_Load();
if(!IsPostBack)
{
//DataBind();
}
}

#region Web 敦极扢數?汜傖腔測鎢
override protected void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
}

private void InitializeComponent()
{
this.Btn_Import_Excel.Click += new System.EventHandler(this.Btn_Import_Excel_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion

private void ExportDataGrid(string FileType, string FileName) //植DataGrid絳堤
{
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");

Response.AppendHeader("Content-Disposition", "attachment;filename=" +HttpUtility.UrlEncode(FileName,Encoding.UTF8).ToString());
Response.ContentType = FileType;
this.EnableViewState =false;
StringWriter tw = new StringWriter();
HtmlTextWriter hw =new HtmlTextWriter(tw);
DataGrid1.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
}
private void Btn_Import_Excel_Click(object sender, System.EventArgs e)
{
ExportDataGrid("application/ms-excel", "Excel.xls"); //絳善Excel
}

private void Data_Load()
{

SqlConnection myConnection = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["produce1"]);
SqlCommand cmd=new SqlCommand("excel",myConnection);
cmd.CommandType=CommandType.StoredProcedure;

if(Session["companyno"]!="")
{
cmd.Parameters.Add("@sql1",SqlDbType.NVarChar,50);
cmd.Parameters["@sql1"].Value = Session["companyno"];
}
else
{
cmd.Parameters.Add("@sql1",SqlDbType.NVarChar,50);
cmd.Parameters["@sql1"].Value = "";
}
if(Session["departmentno"]!="")
{
cmd.Parameters.Add("@sql2",SqlDbType.NVarChar,50);
cmd.Parameters["@sql2"].Value = Session["departmentno"];
}
else
{
cmd.Parameters.Add("@sql2",SqlDbType.NVarChar,50);
cmd.Parameters["@sql2"].Value = "";
}
if(Session["warehouseno"]!="")
{
cmd.Parameters.Add("@sql3",SqlDbType.NVarChar,50);
cmd.Parameters["@sql3"].Value = Session["warehouseno"];
}
else
{
cmd.Parameters.Add("@sql3",SqlDbType.NVarChar,50);
cmd.Parameters["@sql3"].Value = "";
}
if(Session["blockno"]!="")
{
cmd.Parameters.Add("@sql4",SqlDbType.NVarChar,50);
cmd.Parameters["@sql4"].Value = Session["blockno"];
}
else
{
cmd.Parameters.Add("@sql4",SqlDbType.NVarChar,50);
cmd.Parameters["@sql4"].Value = "";
}

myConnection.Open();

DataSet ds=new DataSet();
SqlDataAdapter da=new SqlDataAdapter();
da.SelectCommand=cmd;
da.Fill(ds);
DataGrid1.DataSource=ds;
DataGrid1.DataBind();
}

DataView CreateDataSource()
{
string nowDSN=ConfigurationSettings.AppSettings["produce1"];
SqlConnection myConnection=new SqlConnection(nowDSN);

SqlCommand cmd=new SqlCommand("excel",myConnection);
cmd.CommandType=CommandType.StoredProcedure;

if(Session["companyno"]!="")
{
cmd.Parameters.Add("@sql1",SqlDbType.NVarChar,50);
cmd.Parameters["@sql1"].Value = Session["companyno"];
}
else
{
cmd.Parameters.Add("@sql1",SqlDbType.NVarChar,50);
cmd.Parameters["@sql1"].Value = "";
}
if(Session["departmentno"]!="")
{
cmd.Parameters.Add("@sql2",SqlDbType.NVarChar,50);
cmd.Parameters["@sql2"].Value = Session["departmentno"];
}
else
{
cmd.Parameters.Add("@sql2",SqlDbType.NVarChar,50);
cmd.Parameters["@sql2"].Value = "";
}
if(Session["warehouseno"]!="")
{
cmd.Parameters.Add("@sql3",SqlDbType.NVarChar,50);
cmd.Parameters["@sql3"].Value = Session["warehouseno"];
}
else
{
cmd.Parameters.Add("@sql3",SqlDbType.NVarChar,50);
cmd.Parameters["@sql3"].Value = "";
}
if(Session["blockno"]!="")
{
cmd.Parameters.Add("@sql4",SqlDbType.NVarChar,50);
cmd.Parameters["@sql4"].Value = Session["blockno"];
}
else
{
cmd.Parameters.Add("@sql4",SqlDbType.NVarChar,50);
cmd.Parameters["@sql4"].Value = "";
}

DataSet ds=new DataSet();
SqlDataAdapter da=new SqlDataAdapter();
da.SelectCommand=cmd;
da.Fill(ds);
DataGrid1.DataSource=ds;
DataGrid1.DataBind();
return ds.Tables["block2"].DefaultView;
myConnection.Close();
Page.DataBind();
}

void DataBind()
{
DataView source=CreateDataSource();
if(!IsPostBack)
{
}
DataGrid1.DataSource = source;
DataGrid1.DataBind();
}

}
}
sunshushou 2006-11-22
  • 打赏
  • 举报
回复
楼上能否给个示例呀,问题还没有解决啊!

62,041

社区成员

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

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

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

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