Rückgabe von Objekten aus Listen
Hallo Forum,
ich versuche mich zum ersten Mal mit Listen. Zuerst wird eine Klasse mit Rohdaten definiert:
In einer 2. Klasse werden Objekte der Klasse dann mit Werten gefüllt und an die Liste angehängt.
In der letzten Zeile erhalte ich einen Laufzeitfehler. Gibt es eine Möglichkeit, den Inhalt der Liste (die jeweils 4 Elemente pro Objekt besitzt) In die Spalten A bis D in Excel auf einmal zu übertragen, ohne dass ich hier mit 2 verschachtelten For-Schleifen arbeiten muss?
Vielen Dank,
M. Born
ich versuche mich zum ersten Mal mit Listen. Zuerst wird eine Klasse mit Rohdaten definiert:
Imports Excel = Microsoft.Office.Interop.Excel
Imports Word = Microsoft.Office.Interop.Word
Public Class Rohdatenklasse
Public Inhalt As String
Public Typ As String
Public Bewertung As String
Public Hintergrund As Excel.Interior
End Class
In einer 2. Klasse werden Objekte der Klasse dann mit Werten gefüllt und an die Liste angehängt.
Dim Rohdaten As New Rohdatenklasse
Dim Rohdatenliste As New List(Of Rohdatenklasse)
Dim appWD as Word. Application
Dim appXL as Excel.Application
'weiterer Code
For i As Integer = 1 To appWd.ActiveDocument.ListParagraphs.Count
Rohdaten.Inhalt = appWD.ActiveDocument.ListParagraphs(i).Range.Text
Rohdaten.Typ = IIF(Left(Rohdaten.Inhalt,1) = "B";"B";"A")
Rohdatenliste.Add(Rohdaten)
Next
appXL.Range("A1:D" & appWd.ActiveDocument.ListParagraphs.Count).Value = Rohdatenliste
In der letzten Zeile erhalte ich einen Laufzeitfehler. Gibt es eine Möglichkeit, den Inhalt der Liste (die jeweils 4 Elemente pro Objekt besitzt) In die Spalten A bis D in Excel auf einmal zu übertragen, ohne dass ich hier mit 2 verschachtelten For-Schleifen arbeiten muss?
Vielen Dank,
M. Born
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 460076
Url: https://administrator.de/contentid/460076
Ausgedruckt am: 21.11.2024 um 21:11 Uhr
4 Kommentare
Neuester Kommentar
Hi,
in VB.Net hast Du LINQ zur Verfügung. Damit kannst Du z.B. mittels
die Elemente in einen Text umwandeln. Das genannte Beispiel liefert die Objekte je Zeile, und deren Eigenschaften je Spalte.
Theoretisch müsste man das in Excel direkt einfügen können und Excel verteilt das dann automatisch auf Zeilen und Spalten. Zumindest ist das so, wenn man einen Tabulator- und Zeilen-getrennten Text aus einem Text-Editor in die Zwischenablage kopiert und von dort in Excel einfügt.
E.
in VB.Net hast Du LINQ zur Verfügung. Damit kannst Du z.B. mittels
Text = Join( Rohdatenliste.Select(Function(x) x.Inhalt & vbtab & x.Typ & vbtab & x.Bewertung & vbtab & (x.Hintergrund.ToString)).ToArray, vbnewline)
Theoretisch müsste man das in Excel direkt einfügen können und Excel verteilt das dann automatisch auf Zeilen und Spalten. Zumindest ist das so, wenn man einen Tabulator- und Zeilen-getrennten Text aus einem Text-Editor in die Zwischenablage kopiert und von dort in Excel einfügt.
E.