日期:2014-05-17  浏览次数:20369 次

怎样在将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();
    }

------解决方案--------------------
探讨
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.ForeCol…

------解决方案--------------------
导哪几列就取哪几列
------解决方案--------------------
如果GridView存在模板列,其中包含子控件,例如CheckBox等,导出EXCEL后就会出现该区域的不规律。所以要对模板列单独处理(转载)我转的,啊哈

public void PrepareGridViewForExport(Control gv)//模式化特殊元素 flashcong

{

 

LinkButton lb = new LinkButton();

Literal l = new Literal();

string name = String.Empty;