Announcement

Collapse
No announcement yet.

Daten des DataSets nach Excel exportieren!

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Daten des DataSets nach Excel exportieren!

    Hallo Andreas!<BR> Ich habe da mal wieder eine Frage!<BR>Also ich würde gerne meine Daten aus der Datenbank ins Dataset holen und von da aus nach Excel exportieren.<BR>Ich bin jetzt bis zu dem Punkt gekommen Excel zu öffnen und einige Einstellungen vorzunehmen.<BR>Leider finde ich nichts für den Export der Daten.<BR>Nur wie man Daten aus Textboxen exportiert.<BR>Kannst du mir da vieleicht weiter helfen?<BR>Eigentlich geht das ja so wie ich das verstanden habe mit den Crystal Reports. Nur die habe ich leider nicht, habe nur die Standartversion von VB.Net.<BR>Ist das denn möglich so wie ich mir das vorstelle?<BR>Kannst du mir nicht einen Tipp geben?<BR>Schon mal vielen Dank im Vorraus!!!!!!<BR>Liebe Grüße Tatjana

  • #2
    Hallo Tatjana,

    im einfachsten Fall greift man auf die Methode <b>WriteXML</b> zurück, um den Inhalt in eine XML-Datei zu schreiben, die dann in EXCEL eingelesen wird, wenn im Datei öffnen-Dialog der Dateityp <b>XML-Dateien (*.xml)</b> ausgewählt wurde. Um den Rest kümmert sich Excel dann selbst :-)

    <pre>

    Private aDS As DataSet

    Dim sCS As String = "data source=localhost;initial catalog=Northwind;integrated security=SSPI"
    Dim sSQL As String = "SELECT CustomerID, CompanyName, City FROM Customers"

    Private Sub ButtonFill_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonFill.Click
    Dim aCon As New SqlConnection(sCS)
    Dim aCmd As SqlCommand
    Dim aAdp As SqlDataAdapter
    aCmd = New SqlCommand(sSQL, aCon)
    aAdp = New SqlDataAdapter(aCmd)
    aDS = New DataSet()
    aAdp.Fill(aDS)
    DataGrid1.DataSource = aDS.Tables(0)
    End Sub

    Private Sub ButtonWriteXML_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonWriteXML.Click
    aDS.WriteXml("C:\Temp\Customers.xml")
    End Sub

    </pre>

    Parallel dazu stehen selbstverständlich auch alle "alten" Wege zur Verfügung: <br>
    a) Die eigene VB.NET-Anwendung steuert EXCEL über Automation (COM Interop). <br>
    b) Die eigene VB.NET-Anwendung greift über die alten ADO-Objekte auf eine MDB-Datenbank als Zwischenpuffer zu, um über die Microsoft JET Engine die Daten in die vielen verfügbaren Exportformate zu konvertieren

    Comment


    • #3
      Danke Andreas!<BR>Das funktioniert schon so ganz gut!<BR>Wie bekommt man es denn dann hin das die Datensätze nicht nur in den Feldern A1, A2 usw. ausgeben werden?<BR>Wäre schön wenn ich die Spalten meines dataGrids denen der Excel-Tabelle zuweisen könnte.<BR>Und könntest du mir vieleicht noch ein bisschen zu den alten Wegen erklären?<BR>Und noch eine kleine frage: Warum hängt man als index an aDS.Tables(0) die 0?<BR>Liebe Grüße!!!!!!!!!

      Comment


      • #4
        Hallo Andreas!<BR>Ich habs hinbekommen!<BR>Jetzt noch eine andere Frage.<BR>Ich Wie kann ich mit meinem programm gesteuert Daten aus Access nach Exel exportieren????<BR>Also nicht so das die daten erst in meinem Programm auftauchen, sondern einen direkten Befehl.<BR>Quasi wie der normale Export der Daten von Access nach Exel nur das man das von meinem Programm per Button-Click veranlasst!<BR>Wäre super nett wenn du mir da helfen könntest!<BR>Hier habe ich leider überhaupt keinen Ansatz einer Idee!<BR>Vielen Lieben Dank Tatjan

        Comment


        • #5
          Hallo,

          &gt;Wie kann ich mit meinem programm gesteuert Daten aus Access nach Exel exportieren?

          das ist ganz einfach - weil die Microsoft JET Engine direkt über SQL die eigenen MDB-Daten in eine XLS-Datei exportieren kann. Das eigene VB.NET-Programm muss als Referenz nur einen Verweis auf die Primary Interop Assembly <b>ADODB</b> hinzufügen, danach kann eine Instanz des Connection-Objekts von ADO angefordert werden:

          <pre>

          Dim aCon As New ADODB.Connection()
          aCon.ConnectionString = sVerbindungszeichenfolge
          aCon.Open()

          </pre>

          Die folgende über die Methode <b>Execute</b> des Connection-Objekts ausgeführte SQL-Anweisung exportiert die ACCESS-Tabelle Customer in die Datei Export.xls:

          <pre>

          SELECT * INTO Tabelle1 IN "C:\Temp\Export.xls" "Excel 8.0;" FROM Customer

          </pre>
          &#10

          Comment


          • #6
            Hallo zusammen

            in einem 'alten' Beitrag habe ich gelesen, dass mit dem Befehl WriteXml die Daten aus dem Dataset exportiert und mit Excel geöffnet werden können. Das Klappt auch prima.<p>
            Wenn ich aber im Excel die Daten anschaue, dann steht auf der ersten Zeile '\NewDataSet' und bei den eigentlichen Daten steht als Spaltentitel immer noch der Tabellenname (z.B Tabname\ColNr).<P>
            wie kann ich das verhindern?
            oder wie kriege ich sonst die Daten einer DataTable ins Excel (mit korrekten Spaltenbezeichungen)

            Gruss
            Ren&#233

            Comment


            • #7
              <b>Umlaute</b><br>
              <br>
              moin zusammen...<br>
              <br>
              Die Idee mit WriteXML zu arbeiten erleichtert einem die Kommunikation mit anderen Programmen...lediglich die mal wieder falsche Anzeige der Umlaute nervt...
              <br>
              Hat dafür jemand eine Lösung?

              <br>
              <br>
              MfG

              Michae

              Comment


              • #8
                Hi!

                Ich hätte noch eine Frage dazu:

                Kann ich die Daten aus einer Access-Tabelle in eine Excel-Tabelle exportieren, und diese Excel-Tabelle auch gleich formatieren? Also die Reihenfolge der Spalten ändern, und Rahmen setzen...

                Vielen Dank schon mal,

                MfG
                Man

                Comment

                Working...
                X