Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Skapa knapp för att exportera till Excel

Postades av 2007-03-06 17:57:29 - Ted Nyberg, i forum asp.net generellt, Tråden har 1 Kommentarer och lästs av 868 personer

Jag försöker åstadkomma så att jag kan lägga in en knapp intill de tabeller som förekommer i en webapplikation så att dessa tabeller kan exporteras till Excel.

Jag har ordnat en klass som ordnar ett DataGrid-objekt utifrån Repeater, jag har hört att detta gör det enkelt att exportera till Excel.

Jag har testat några varianter när man klickar på en knapp i en vanlig .ASPX, och det fungerar bra. Jag använder då följande (på ett ungefär):

            HttpResponse Response = HttpContext.Current.Response;

            System.Web.UI.WebControls.DataGrid excelGrid = CreateDataGrid(Repeater tableToGenerate);

            Response.Clear();
            Response.AddHeader("content-disposition", "attachment;filename=ExportedData.xls");
            Response.Charset = "";
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Response.ContentType = "application/vnd.xls";

            System.IO.StringWriter stringWrite = new System.IO.StringWriter();
            System.Web.UI.HtmlTextWriter htmlWrite = new System.Web.UI.HtmlTextWriter(stringWrite);

            excelGrid.RenderControl(htmlWrite);
            Response.Write(stringWrite.ToString());
            Response.End();


Problemet är att jag har en dynamiskt laddad User Control i vilken tabellen och knappen för att exportera till Excel finns med. Detta verkar skapa allvarliga problem, men jag kan inte riktigt lista ut hur jag ska komma runt det.

Jag vet att problemet kanske är lite luddigt, men finns det någon som känner igen någon liknande problematik?


Svara

Sv: Skapa knapp för att exportera till Excel

Postades av 2007-03-07 07:57:40 - Tobias Gladh

Jag vet att när jag satt med masterpages och skulle skapa excelfiler från dataset så blev det problem och jag hittade då denna lösning som jag hoppas kunna vara till hjälp.

Vid första visningen av datan lagras det i en cache, nu är det lite Linq inblandat i detta men men...
<code>
Protected Sub btnSearch_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSearch.Click
Dim mDB As New db(ConfigurationManager.ConnectionStrings("mConn").ConnectionString)
Dim ds As DataSet = New DataSet()
If Cache("DataSet") Is Nothing Then
ds = (From t In mDB.TblTasks _
Select t)
Cache("DataSet") = ds
End If
gv2.DataSource = CType(Cache("DataSet"), DataSet)
gv2.DataBind()
btnExcel.Visible = True
End Sub

Protected Sub btnExcel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnExcel.Click
Response.Clear()
Response.AddHeader("content-disposition", "attachment;filename=file.xls")
Response.Charset = ""
' If you want the option to open the Excel file without saving than
' comment out the line below
' Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = "application/vnd.xls"
Dim stringWrite As System.IO.StringWriter = New System.IO.StringWriter()
Dim htmlWrite As System.Web.UI.HtmlTextWriter = New HtmlTextWriter(stringWrite)
Dim gv1 As GridView = GetGridView()
gv1.RenderControl(htmlWrite)
Response.Write(stringWrite.ToString())
Response.End()
End Sub

Private Function GetGridView() As GridView
fv1.DataSource = CType(Cache("DataSet"), DataSet)
fv1.DataBind()
Dim row As FormViewRow = fv1.Row
Dim gv As GridView = CType(row.FindControl("gv1"), GridView)
gv.DataSource = CType(Cache("DataSet"), DataSet)
gv.DataBind()
Return gv
End Function

Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control)

' Confirms that an HtmlForm control is rendered for the specified ASP.NET server control at run time.

End Sub
</code>

I aspx-sidan så finns följande. Dvs en formview med en gridview i sig som aldrig visas men som hjälper till att rendera till excel. gv2 används för att visa datan

<code>
<asp:FormView ID="fv1" runat="server">

<ItemTemplate>

<asp:GridView ID="gv1" runat="server" AutoGenerateColumns="true" />

</ItemTemplate>

</asp:FormView>
<asp:GridView ID="gv2" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" AutoGenerateColumns="False" DataKeyNames="intId" Width="800px">
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" VerticalAlign="Top" />
<EditRowStyle BackColor="#999999" VerticalAlign="Top" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" VerticalAlign="Top" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" VerticalAlign="Top" />
<Columns>
<asp:BoundField DataField="strText" HeaderText="&#196;rende">
<ItemStyle Width="150px" Wrap="True" />
</asp:BoundField>
<asp:BoundField HeaderText="Beskrivning" DataField="strDescr" >
<ItemStyle Width="490px" Wrap="True" />
</asp:BoundField>
<asp:BoundField HeaderText="Datum" DataField="dtmReportDate" DataFormatString="{0:dd-MM-yyyy}" HtmlEncode="False" >
<ItemStyle Width="90px" Wrap="False" />
</asp:BoundField>
<asp:BoundField HeaderText="Tid" DataField="decTime" >
<ItemStyle Width="20px" Wrap="False" />
</asp:BoundField>
<asp:HyperLinkField DataNavigateUrlFields="intId" DataNavigateUrlFormatString="~/AddEdit.aspx?id={0}"
Text="Visa/Redigera" ItemStyle-ForeColor="#5d7b9d" >
<ItemStyle Width="50px" Wrap="False" ForeColor="#5d7b9d" />
</asp:HyperlinkField>
</Columns>
</asp:GridView>
</code>


Svara

Nyligen

  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit
  • 12:08 Indian casino
  • 04:14 Vad finns det för kratomalternativ
  • 14:16 Indian online casino
  • 14:15 Indian online casino
  • 08:28 Butiksskyltar: Hur upplever utbude

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 871
27 965
271 770
493
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies