English 中文(简体)
Can I export gridview to excel,if gridview has paging
原标题:Can I export gridview to excel,if gridview has paging

颜色在电网中自动生成。 Gridview has paging. 如果电网显示有 p,我可以向外壳输出电网。

问题回答

您可以出口这种观点,以便......。

   public static void Export(string fileName, GridView gv)
   {
       HttpContext.Current.Response.Clear();
       HttpContext.Current.Response.AddHeader(
       "content-disposition", string.Format("attachment; filename={0}", fileName));
       HttpContext.Current.Response.ContentType = "application/ms-excel";

       using (StringWriter sw = new StringWriter())
       {
           using (HtmlTextWriter htw = new HtmlTextWriter(sw))
           {
               //  Create a form to contain the grid
               Table table = new Table();

               //  add the header row to the table
               if (gv.HeaderRow != null)
               {
                   GridViewExportUtil.PrepareControlForExport(gv.HeaderRow);
                   table.Rows.Add(gv.HeaderRow);
               }

               //  add each of the data rows to the table
               foreach (GridViewRow row in gv.Rows)
               {
                   GridViewExportUtil.PrepareControlForExport(row);
                   table.Rows.Add(row);
               }

               //  add the footer row to the table
               if (gv.FooterRow != null)
               {
                   GridViewExportUtil.PrepareControlForExport(gv.FooterRow);
                   table.Rows.Add(gv.FooterRow);
               }

               //  render the table into the htmlwriter
               table.RenderControl(htw);

               //  render the htmlwriter into the response
               HttpContext.Current.Response.Write(sw.ToString());
               HttpContext.Current.Response.End();
           }
       }
   }

    //Export Gridview Data to Excel File and Save Excel file to Server Folder Rather than
   //allowing user to Open or Save it.
   public static void ExportToFolder(string fileName, GridView gv)
   {

       System.Text.StringBuilder sb = new System.Text.StringBuilder();

       using (StringWriter sw = new StringWriter(sb))
       {
           using (HtmlTextWriter htw = new HtmlTextWriter(sw))
           {
               //  Create a form to contain the grid
               Table table = new Table();

               //  add the header row to the table
               if (gv.HeaderRow != null)
               {
                   GridViewExportUtil.PrepareControlForExport(gv.HeaderRow);
                   table.Rows.Add(gv.HeaderRow);
               }

               //  add each of the data rows to the table
               foreach (GridViewRow row in gv.Rows)
               {
                   GridViewExportUtil.PrepareControlForExport(row);
                   table.Rows.Add(row);
               }

               //  add the footer row to the table
               if (gv.FooterRow != null)
               {
                   GridViewExportUtil.PrepareControlForExport(gv.FooterRow);
                   table.Rows.Add(gv.FooterRow);
               }

               //  render the table into the htmlwriter
               table.RenderControl(htw);

               //Create file
               System.IO.TextWriter w = new System.IO.StreamWriter(HttpContext.Current.Server.MapPath("~") + "\" + fileName);
               w.Write(sb.ToString());
               w.Flush();
               w.Close();

           }
       }
   }

   private static void PrepareControlForExport(Control control)
   {
       for (int i = 0; i < control.Controls.Count; i++)
       {
           Control current = control.Controls[i];
           if (current is LinkButton)
           {
               control.Controls.Remove(current);
               control.Controls.AddAt(i, new LiteralControl((current as LinkButton).Text));
           }
           else if (current is ImageButton)
           {
               control.Controls.Remove(current);
               control.Controls.AddAt(i, new LiteralControl((current as ImageButton).AlternateText));
           }
           else if (current is HyperLink)
           {
               control.Controls.Remove(current);
               control.Controls.AddAt(i, new LiteralControl((current as HyperLink).Text));
           }
           else if (current is DropDownList)
           {
               control.Controls.Remove(current);
               control.Controls.AddAt(i, new LiteralControl((current as DropDownList).SelectedItem.Text));
           }
           else if (current is CheckBox)
           {
               control.Controls.Remove(current);
               control.Controls.AddAt(i, new LiteralControl((current as CheckBox).Checked ? "True" : "False"));
           }

           if (current.HasControls())
           {
               GridViewExportUtil.PrepareControlForExport(current);
           }
       }
   }

http://ramanisandeep.wordpress.com/2009/04/07/export-gridview-to-excel/“rel=“nofollow”>。





相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

How to Add script codes before the </body> tag ASP.NET

Heres the problem, In Masterpage, the google analytics code were pasted before the end of body tag. In ASPX page, I need to generate a script (google addItem tracker) using codebehind ClientScript ...

Transaction handling with TransactionScope

I am implementing Transaction using TransactionScope with the help this MSDN article http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope.aspx I just want to confirm that is ...

System.Web.Mvc.Controller Initialize

i have the following base controller... public class BaseController : Controller { protected override void Initialize(System.Web.Routing.RequestContext requestContext) { if (...

Microsoft.Contracts namespace

For what it is necessary Microsoft.Contracts namespace in asp.net? I mean, in what cases I could write using Microsoft.Contracts;?

Separator line in ASP.NET

I d like to add a simple separator line in an aspx web form. Does anyone know how? It sounds easy enough, but still I can t manage to find how to do it.. 10x!

热门标签