Avatar billede sbaht Nybegynder
28. marts 2006 - 12:51 Der er 1 kommentar og
1 løsning

Data fra MS-SQL til Excel med ASP.NET

Jeg skal lave en knap der ekportere en tabel fra sql db til Excel, er der nogen der ved hvordan man griber det an, jeg kan sagten ekportere til et datagrid men nu skal det eksporteres direkte til Excel.
Avatar billede sbaht Nybegynder
28. marts 2006 - 13:46 #1
Opretter spm et andet sted!!
Avatar billede rasserw Nybegynder
06. april 2006 - 20:39 #2
Hmmm, det var vist lukket det spøs, men det kan sagtens lade sig gøre (via dit eksisterende datagrid etc)

Dette er en version 1.1 løsning jeg selv har lavet tidligere. Altså ikke DIREKTE til excel, men det ender da i excel. Lav en knap på din webform som kalder denne metode:


protected void Button1_Click(object sender, System.EventArgs e)
        {
            //export to excel

            Response.Clear();
            Response.Buffer= true;
            Response.ContentType = "application/vnd.ms-excel";
            Response.Charset = "";
            this.EnableViewState = false;

            System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
            System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);

            this.ClearControls(xDataGridAllUsers);
            xDataGridAllUsers.RenderControl(oHtmlTextWriter);

            Response.Write(oStringWriter.ToString());

            Response.End();
        }


Og metoden som benyttes i do. er her:

private void ClearControls(Control control)
        {
            for (int i=control.Controls.Count -1; i>=0; i--)
            {
                ClearControls(control.Controls[i]);
            }

            if (!(control is TableCell))
            {
                if (control.GetType().GetProperty("SelectedItem") != null)
                {
                    LiteralControl literal = new LiteralControl();
                    control.Parent.Controls.Add(literal);
                    try
                    {
                        literal.Text = (string)control.GetType().GetProperty("SelectedItem").GetValue(control,null);
                    }
                    catch

                    {

                    }

                    control.Parent.Controls.Remove(control);
                }

                else

                    if (control.GetType().GetProperty("Text") != null)
                {
                    LiteralControl literal = new LiteralControl();
                    control.Parent.Controls.Add(literal);
                    literal.Text = (string)control.GetType().GetProperty("Text").GetValue(control,null);
                    control.Parent.Controls.Remove(control);
                }
            }
            return;
        }

Venligst

Arne Johansen
www.frameworker.net
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester