c#中 如何将gridview中数据导出到已经存在的Excel
把DataGrid的数据,导出到excel中
1:在页面的类中添加
public override void VerifyRenderingInServerForm(Control control)
{
}
2:写上如下代码:
Response.ContentType = "application/vnd.ms-excel";
System.IO.StringWriter tw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
this.GridView2.RenderControl(hw);//设置你要导出内容的控件,我这里是Repeater
Response.Write(tw.ToString());
Response.End();
怎么把gridview中的内容导出到excel中
如果想做复杂一点的控制,最好用别的导出方式生成xls标准格式,比如用office的 COM组件或者第三方的组件(NExcel, MyXls)等。
园子里也有人做这方面的东西,你可以搜一下。
c#.net 中 如何将gridview中的数据导出到excel中?
/// <summary>
/// 导出Datatable的数据到excel
/// </summary>
/// <param name="dt">datatable</param>
private void CreateExcel(DataTable dt)
{
try
{
string fileName = DateTime.Now.ToString("yyyyMMddHHmm") + ".xls";
HttpResponse resp;
resp = Page.Response;
resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
resp.AppendHeader("Content-Disposition", "attachment;filename=" + fileName);
resp.ContentType = "application/ms-excel";
string colHeaders = "", ls_item = "";
//定义表对象与行对象,同时用DataSet对其值进行初始化
DataRow[] myRow = dt.Select();
int i = 0;
int cl = dt.Columns.Count;
//取得数据表各列标题,各标题之间以t分割,最后一个列标题后加回车符
colHeaders += dt.Columns[1].Caption.Replace("ID", "编号") + " ";
colHeaders += dt.Columns[2].Caption.Replace("FuncID", "操作名称") + " ";
colHeaders += dt.Columns[0].Caption.Replace("logtypes", "操作类型") + " ";
colHeaders += dt.Columns[6].Caption.Replace("LogDec", "操作内容") + " ";
colHeaders += dt.Columns[5].Caption.Replace("UserID", "用户名称") + " ";
colHeaders += dt.Columns[4].Caption.Replace("CreateTime", "操作时间") + "
";
resp.Write(colHeaders);
//向HTTP输出流中写入取得的数据信息
//当前行数据写入HTTP输出流,并且置空ls_item以便下行数据
for (i = 0; i < dt.Rows.Count; i++)
{
//if (i == (cl - 1))//最后一列,加n
ls_item += dt.Rows[i][1].ToString() + " ";
ls_item += dt.Rows[i][2].ToString() + " ";
ls_item += dt.Rows[i][0].ToString() + " ";
ls_item += dt.Rows[i][6].ToString().Replace("
", "") + " ";
if (dt.Rows[i][5].ToString().Trim() == "")
{
ls_item += "无姓名" + " ";
}
else
{
ls_item += dt.Rows[i][5].ToString() + " ";
}
ls_item += dt.Rows[i][4].ToString() + "
";
}
resp.Write(ls_item);
ls_item = "";
resp.End();
}
catch (Exception)
{
throw;
}
}
protected void btiiii_Click(object sender, EventArgs e)
{
try
{
DCExecl(Convert.ToInt32(this.txtstrPageindex.Value), Convert.ToInt32(this.txtendPageindex.Value));
new Facade.SystemLog().SaveSystemLogCode("系统日志",(int)Facade.EnumMuster.LOG_TYPE.DEVICE_OPERATION,Session["UserID"].ToString(),Session["UserID"].ToString()+"导出系统日志数据");
}
catch (Exception)
{
throw;
}
}
}
适当修改就行·
Gridview导出数据到Excl
1、手动的话,选中你要导出的内容,复制粘贴到EXCEL即可
2、代码完成的话,可以将需要导出的内容写成txt文件,单元格实用 来分隔 (我空间有说明,留言上有代码)
3、用水晶报表,里面自带有导出excel功能
4、网页导出的代码具体请百度
如何实现asp.net Gridview部分列导出至excel
重新复制一个GridView吧:
DataGrid dgNew = new DataGrid();
DataTable dt = (DataTable)Gridview1.DataSource; //获取原GridView的数据源
DataTable dtNew = dt.Copy(); //复制一份GridView的数据源
dtNew.Columns.Remove("移除不必导出的列");
dgNew.DataSource = dtNew;
dgNew.DataBind();
导出的代码 GridView1.RenderControl(hw); 改为 dgNew.RenderControl(hw);
如果导出页面候有跳转的话,那么就直接对原来的GridView 移除列就行
Gridview1.Columns.Remove("要移除的列");
c#.net中把gridview中当前的数据导出成xls或者txt保存到客户端
protected void Button1_Click(object sender, EventArgs e)
{
//设定导出文件的格式
Response.ContentType = "application/vnd.ms-excel";
//设定编码方式
Response.Charset = "gb2312";
Response.ContentEncoding = System.Text.Encoding.UTF7;
//关闭ViewState
EnableViewState = false;
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
GridView1.RenderControl(hw);
//把HTML写回浏览器
Response.Write(tw.ToString());
Response.End();
}
注意要在命名空间中引用using System.IO;
在你这个事件后添加如下代码:
public override void VerifyRenderingInServerForm(Control control)
{ }
以上代码已经修改过,将其复制到你的VS里,绝对正确,这可是经过测试过的哟!