怎样在将GridView数据导出到Excel时,指定列导出?
怎样在将GridView数据导出到Excel时,导出自己需要的列?
------解决方案--------------------
protected void export_Click(object sender, EventArgs e)
{
int i = 0;
if (this.MachineList.Rows.Count == 0)
{
Response.Write("<script>alert('没有查找到数据,无法导出!')</script>");
}
else
{
///隐藏部分列,不予导出
this.MachineList.Columns[9].Visible = false;
this.MachineList.Columns[8].Visible = false;
this.MachineList.Columns[7].Visible = true;
this.MachineList.HeaderStyle.ForeColor = Color.Black;
///处理表头自动排序的超链接
while (i < MachineList.Columns.Count)
{
MachineList.Columns[i].SortExpression = "";
i++;
}
this.MachineList.AllowPaging = false; // 将有分页的GridView中的数据全部导出到Excel
Bind();
Export("application/ms-excel", "设备信息.xls");
// 换成 Export("application/ms-word", "设备信息.doc"); 那么导出的就是Word格式的了.
this.MachineList.AllowPaging = true;
Bind();
}
}
------解决方案--------------------查询到dataTable,再由datatable导出到Excel效率高
只要对SQL语句改一下就可以了。
------解决方案--------------------导出时把你要的列的数据取出来重新绑定一下.然后再导
------解决方案--------------------
------解决方案--------------------
C# code
public void ExportToExcel(string Filename, GridView gridview, Page page)
{
gridview.EnableViewState = false;
gridview.AllowSorting = false;
gridview.AllowPaging = false;
//在这里把你不要的字段隐藏
DataTable temp = 这里的datatable是所有的数据,你取出来赋给temp
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存在模板列,其中包含子控件,例如CheckBox等,导出EXCEL后就会出现该区域的不规律。所以要对模板列单独处理(转载)我转的,啊哈
public void PrepareGridViewForExport(Control gv)//模式化特殊元素 flashcong
{
LinkButton lb = new LinkButton();
Literal l = new Literal();
string name = String.Empty;