Excel-Dateien mit Visual Basic bearbeiten

Rene42

Erfahrenes Mitglied
Hi Leute,

ich würde gerne folgendes können :):

Mit Visual Basic 2008 eine Excel Datei erzeugen und den Inhalt bearbeiten. Gibt es da eine passende Klasse?

Leider konnte ich bei google viel zu viel finden und das meiste zu VBA oder VB 6.0

Gruß Rene
 
Hi,

hab nun mal ein wenig die suche bemüht und mir folgenden Code gebastelt:

Code:
        Dim Dateiname As String = "C:\Test.xlsx"
        Dim App As Excel.Application = New Excel.Application
        App.Visible = True        
        Dim Mappe As Excel.Workbook = App.Workbooks.Open(Dateiname)
        -+-Dim Blatt As Excel.Worksheet = Mappe.Worksheets.Item(0) -+-
        Dim Zelle As Excel.Range = Blatt.Cells(1, 1)
        Zelle.Value = "Es geht"

Die markierte Zeile verursacht eine HResult Ausnahme. Da Item leider auch keine Integer oder String Werte zur Auswahl einer Exceltabelle akzeptiert sondern ein Object erwartet, habe ich keine Ahnung wie ich da geziehlt zum Beispiel die
"Tabelle 1" auswählen kann.

Des Weiteren stellen sich mir noch zwei Fragen auf die ich beim suchen keine Antwort finden konnte:

1. Lassen sich Exceldateien nur bearbeiten oder auch erzeugen?
2. Muss auf dem Rechner wo eine Exceldatei erzeugt werden soll Excel vorhanden
sein? Lässt sich die Datei eventuell auch in einem alten Format (xls) speichern?

Gruß Rene

Gruß Rene
 
Hi

Zum einen findest du unter
http://openbook.galileocomputing.de/vb_net/msvb040000.htm#Rxx73339
Beispiele, wie du Excel programmatisch steuerst (auch von außen).

Zum deinem HResult Fehler:
Gib den Indexer oder den Sheetnamen nicht beim Item-Property an sondern direkt bei Worksheets. (siehe auch Link)

@Datei erstellen:
Mit Workbooks.Add() kannst du eine neue Mappe erstellen.
siehe auch http://christian.bloggingon.net/archive/2008/09/05/exceldateien-mit-c-erstellen.aspx

@Excel auf anderem Rechner
Da du die Excel-API nutzt, benötigst du auch Excel. Falls du keine Formeln einfügen willst, sollte jedoch auch CSV reichen.
 
Hi Leute,

ich versuche mit folgenden Code erst eine neue Mappe zuerstellen:

Code:
        Dim App As Excel.Application = New Excel.Application
        App.Visible = True        
        Dim Mappe As Excel.Workbook = App.Workbooks.Add("C:\Export.xlsx")       
        Dim Blatt As Excel.Worksheet = Mappe.Worksheets("Tabelle1")
        Blatt.Cells(1, 1).Value = "Es funktioniert!"

Es geht wenn ich mit Workbook.Open("C:\Text.xlsx") eine vorhandene Datei zurückgreife funktioniert es.

Außerdem suche ich noch den BEfehl um die Veränderungen in der Arbeitsmappe zu speichern.

Gruß Rene
 
Hi

Bei deinem Versuch, eine neue Mappe zu erzeugen, wird wohl ein Fehler kommen, weil die Datei nicht gefunden wurde. Schau dir doch mal den Link an, da gibts ein Beispiel!

Speichern kannst mit der Methode Save. Auch das findest du unter den Links
 
Zurück