VB .NET - DataTable nach Excel exportieren
28. Jan 2009 20:05 (bearbeiten)

Da ich heute ein DataTable möglichst schnell und einfach als Bericht brauchte, habe ich nach einer Möglichkeit gesucht, dieses DataTable nach Excel zu exportieren.
Irgendwo im Internet habe ich dann folgenen, leicht abgeänderten Schnipsel entdeckt (die Quelle weiß ich leider nicht mehr).
Da ich das sicherlich noch häufiger brauche und andere eventuell auch, poste ich den Code mal hier.
Als Referenz muss das Excel COM Objekt zu den Projekt Referenzen hinzugefügt werden.
''' <summary> ''' Export a DataTable into an Excel Datasheet ''' </summary> ''' <param name="aDataTable"></param> ''' <param name="aOutputFilename"></param> ''' <returns></returns> ''' <remarks></remarks> Public Shared Function DatatableToExcel(ByVal aDataTable As DataTable, ByVal aOutputFilename As String) As Boolean Dim app As New Excel.ApplicationClass Dim wb As Excel.Workbook Dim ws As Excel.Worksheet wb = app.Workbooks.Add() ws = wb.ActiveSheet() Dim dc As DataColumn Dim dr As DataRow Dim colIndex As Integer Dim rowIndex As Integer ' Columns erstellen For Each dc In aDataTable.Columns colIndex += 1 app.Cells(1, colIndex) = dc.ColumnName Next ' Rows hinzufügen For Each dr In dt.Rows rowIndex += 1 colIndex = 0 For Each dc In aDataTable.Columns colIndex += 1 app.Cells(rowIndex + 1, colIndex) = dr(dc.ColumnName) Next Next ws.Columns.AutoFit() wb.SaveAs(aOutputFilename) app.Workbooks.Open(aOutputFilename) ' Excel anzeigen wenn fertig exportiert app.Visible = True Return True End Function
Update am 01.12.2009:
Da ich immer häufiger auf die obigen Funktionen zugreife, habe ich meine Klasse ExcelTools mittlerweile etwas ergänzt. Wer möchte, kann sich den Quellcode hier herunter laden.
Projekt Vorschau
23. Jan 2009 16:01 (bearbeiten)
Hier eine kleine Vorschau des Projekts an dem ich gerade arbeite.

Wie man hoffentlich sieht, handelt es sich um einen App Launcher, also so etwas wie Launchy. Wenn das Projekt fertig ist, soll das Programm aber mehr können, als nur Programme zu öffnen. Ich habe folgendes geplant:
- Starten, Beenden (und Bearbeiten) von Programmen
- Öffnen und Bearbeiten von Dateien
- Arbeiten mit markierten Dateien, Ordnern und Text
- Index Unterstützung, d. h. eigene Indexer können beliebige Objekte (wie Mails, Termine, usw.) indexieren, mit denen dann gearbeitet werden kann.
- Plugin Unterstützung, d. h. eigene Aktionen für Objekte können geschrieben werden. Beispielsweise könnte ein Mail Plugin E-Mails an indexierte Kontakte versenden, ein Packer-Plugin könnte markierte Ordner zipppen und via FTP-Plugin hochladen
- Skin Unterstützung
- Einfache(ste) Bedienung
Das wichtigste an diesem Programm wird die einfache Bedienung sein (auch wenn ich das als letzten Punkt in der Liste aufgeführt habe). So soll es mit nur wenigen Tastendrücken möglich sein, beispielsweise in Windows markierte Dateien zu zippen, zu verschlüsseln und anschließend auf einen FTP Server zu laden.
Dabei werden Plugins miteinander verknüpft die unterschiedliche Objekte an das nächste vom Benutzer ausgewählte Plugin zurückliefern.
Gemäß obigem Beispiel:
Ausgewählte Dateien -> Plugin: ZIP -> Gezippte Dateien -> Plugin: Verschlüsselung -> Verschlüsselte Dateien -> Plugin: FTP -> Auswahl FTP-Verbindungsdaten -> Fertig.
Wer Quicksilver für den Mac kennt, wird sicherlich viele Gemeinsamkeiten entdecken, was daran liegt, dass Quicksilver für mich eine Art inspirierende Vorlage war (was es für Windows Alternativen zu Quicksilver gibt, hat Lifehacker übrigens in diesem Artikel zusammengefasst).
Bis das alles so funktioniert wie ich das gerne hätte, muss ich aber noch einiges an Arbeit in das Projekt stecken. Ein Schritt in diese Richtung ist allerdings bereits gemacht.
VB .NET - Displayname / Beschreibung einer Datei ermitteln
21. Jan 2009 15:12 (bearbeiten)

Ich wollte für ein Programm an dem ich gerade arbeite statt der Dateiendung die Beschreibung zu der Dateiendung anzeigen.
Windows selbst zeigt diese Beschreibung beispielsweise in der Statusleiste des Explorers, wenn man auf eine bekannte Datei klickt. Beispielsweise bei "*.MOV" Dateien wäre die Anzeige (je nachdem mit welchem Programm die Endung verknüpft ist) "VLC media file (.mov)" oder "Quicktime Movie".
Nunja, als ich noch mit Delphi programmierte hätte ich hierzu die Shell32 SHGetFileInfo Funktion verwendet, doch unter .NET binde ich ungerne DLLs ein, also habe ich mir eine Funktion gebastelt, die die Info aus der Registry ausliest.
''' <summary> ''' Retrieve the Description/Displayname for a FileExtension ''' </summary> ''' <param name="aExtension">The Extension with a leading dot</param> ''' <returns>The Description of an Extension</returns> ''' <remarks></remarks> Public Shared Function GetDisplayNameFromExtension(ByVal aExtension As String) As String If aExtension = String.Empty Or Not aExtension.StartsWith(".") Then Return String.Empty ' First the get the key for the extension ' Extension is for example ".MOV", Key is "VLC.mov" Dim key As Microsoft.Win32.RegistryKey = My.Computer.Registry.ClassesRoot.OpenSubKey(aExtension) If key IsNot Nothing Then ' Then we look in the sub key for the description Dim SubkeyName As String = key.GetValue(String.Empty) Dim SubKey As Microsoft.Win32.RegistryKey = My.Computer.Registry.ClassesRoot.OpenSubKey(SubkeyName) If SubKey IsNot Nothing Then Return SubKey.GetValue(String.Empty) End If End If Return String.Empty End Function
Beispielaufruf:
Msgbox(GetDisplayNameFromExtension(".zip"))
Download <> Kauf
20. Jan 2009 23:56 (bearbeiten)

Ein US Richter hat glücklicherweise gerade bestätigt was für jeden normaldenkenden Menschen schon lange klar war:
17.000 illegale Downloads entsprechen nicht 17.000 potentiellen Käufen
via Slashdot bzw. Ars Technica.
Paul Blart - Mall Cop
19. Jan 2009 14:55 (bearbeiten)

Eine neue Komödie mit Kevin James (bekannt aus King of Queens) startete letzten Freitag den 16. Januar 2009 in den US Kinos.
Am 9. April wird "Der Kaufhaus Cop" dann in den deutschen Kinos zu sehen sein.
Der Trailer lässt auf eine wirklich lustige Komödie im Stil von "Kevin allein zu Haus" hoffen, obwohl die IMDB Bewertung mit 5.5 von 10 nicht sonderlich gut aussieht, aber was heisst das schon.
Crank 2 - High Voltage Trailer
19. Jan 2009 13:06 (bearbeiten)

Es ist beinahe drei Jahre her, seit sich Chev Chelios so mit Adrenalin vollpumpen musste, dass er es über die knapp anderthalb Stunden Film schaffte.
Am 16. April ist es dann endlich soweit, da kommt der zweite Crank Teil (mit dem netten Zusatz: "He was dead...But he got better") in die deutschen Kinos.
Mit an Bord sind unter anderem David Carradine (der unter anderem in Death Race und Kill Bill mitwirkte) und jede Menge Stuntmen.
Der Trailer lässt auf einen guten Nachfolger im Stil des ersten Teils hoffen. Da auch die selben Regisseure mit von der Partie sind, kann eigentlich nicht mehr viel daneben gehen.Ich bin auf jeden Fall gespannt...
Worst Night Ever
17. Jan 2009 16:28 (bearbeiten)
Wie kann die schlimmste Nach ablaufen? Im folgenden eine mögliche Situation.
