Hallo zusammen,
ich möchte Nutzereingaben von vb.Net nach Excel in eine bestehende Datei exportieren.
Im ersten Schritt kann man die Excel-Datei durch ein OpenFileDialog aussuchen. Dann wird die Datei geöffnet und ein neues Worksheet erstellt.
Spoiler anzeigen
Hier kommt anfangs keine Fehlermeldung, wird die gleiche Datei mehrmals benutzt, sprich bei mehreren Nutzerprofilen(bei mehreren Programmstarts ) kommt ein Fenster mit folgenden Text:
"Eine Datei mit dem Namen "XYZ" ist bereits diesen Speicherort vorhanden. Soll sie ersetzt werden?"
Bei Ja läuft das Programm ganz normal durch, aber ich möchte in einer anderen Form weitere Daten zu der gleichen anfangs erstellten Sheet hinzufügen, da kommt dann der Fehler
Ungültiger Index. Die Excel-Datei ist dann schreibgeschützt
Wenn ich eine neue Excel-Datei erstelle und diese einmalig öffne und eine neues Worksheet hinzufüge und es bearbeite, funktioniert es gut.
Dann wird aber beim nächsten Programmstart die gleiche Datei genommen, ist die Datei anscheinend schreibgeschützt, obwohl sie für mich nicht sichtbar ist.
Im Task-Manager taucht bei Anwendungen nichts von Excel auf, dafür aber bei den Prozessen. Dort stehen dann mehrere Excel-Prozesse.
Kille ich alle diese Excel-Prozesse starte mein Programm neu, dann funktioniert das ganze wieder, aber nur 1,2 Mal.
Dann stehen aber wieder neue Excel-Prozesse im Task-Manager.
Dazu habe ich folgendes hier im Forum einiges gefunden, daher habe ich auch diese Release-Funktion eingebaut. Doch die hilft nicht wirklich.
ich möchte Nutzereingaben von vb.Net nach Excel in eine bestehende Datei exportieren.
Im ersten Schritt kann man die Excel-Datei durch ein OpenFileDialog aussuchen. Dann wird die Datei geöffnet und ein neues Worksheet erstellt.
VB.NET-Quellcode
- Imports Excel = Microsoft.Office.Interop.Excel
- Private Sub Button_ExportEinstellung_Click(sender As Object, e As EventArgs) Handles Button_ExportEinstellung.Click
- GlobaleVariablen.probandenID = TextBox1.Text
- Dim xlApp As Excel.Application
- Dim xlWorkBook As Excel.Workbook
- ' Start Excel and get Application object.
- xlApp = CreateObject("Excel.Application")
- GlobaleVariablen.nutzerID = TextBox1.Text'damit Nutzer-ID auch für andere Formen nutzbar
- GlobaleVariablen.filepath = TextBox_Speicherort.Text
- Dim filePath As String = TextBox_Speicherort.Text
- If My.Computer.FileSystem.FileExists(filePath) = True Then
- xlWorkBook = xlApp.Workbooks.Open(filePath)
- Dim worksheets As Excel.Sheets = xlWorkBook.Worksheets
- Dim xlNewSheet = DirectCast(worksheets.Add(worksheets(1), Type.Missing, Type.Missing, Type.Missing), Excel.Worksheet)
- xlNewSheet.Name = "ID " + TextBox1.Text
- 'xlNewSheet = xlWorkBook.Sheets("sheet1")
- xlNewSheet.Select()
- 'Schreiben der neuen Daten
- With xlNewSheet
- .Cells(1, 1).Value = "Datum:"
- .Cells(1, 3).value = "Uhrzeit:".
- Cells(2, 1).Value = "Nutzer-ID:"
- .Cells(1, 2).Value = TextBox2.Text 'Datum
- .Cells(1, 4).value = TextBox3.Text 'Uhrzeit
- .Cells(2, 2).Value = "'" + TextBox1.Text 'Nutzer-Id
- End With
- xlWorkBook.Save()
- xlWorkBook.Close()
- ' Release object references.
- releaseObject(xlNewSheet)'releaseObject ist eine Funktion die Objekte löscht
- releaseObject(worksheets)
- releaseObject(xlWorkBook)
- releaseObject(xlApp)
- releaseObject(raXL)
- MessageBox.Show("Die Datei wurde abgespeichert", "Abspeichern in Excel", MessageBoxButtons.OK, MessageBoxIcon.Information)
- Else
- MessageBox.Show("Die Datei wurde nicht gefunden" + Environment.NewLine + "Bitte prüfen Sie den Pfad", "Falscher Pfad", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
- End If
- End Sub
Hier kommt anfangs keine Fehlermeldung, wird die gleiche Datei mehrmals benutzt, sprich bei mehreren Nutzerprofilen(bei mehreren Programmstarts ) kommt ein Fenster mit folgenden Text:
"Eine Datei mit dem Namen "XYZ" ist bereits diesen Speicherort vorhanden. Soll sie ersetzt werden?"
Bei Ja läuft das Programm ganz normal durch, aber ich möchte in einer anderen Form weitere Daten zu der gleichen anfangs erstellten Sheet hinzufügen, da kommt dann der Fehler
Ungültiger Index. Die Excel-Datei ist dann schreibgeschützt
Wenn ich eine neue Excel-Datei erstelle und diese einmalig öffne und eine neues Worksheet hinzufüge und es bearbeite, funktioniert es gut.
Dann wird aber beim nächsten Programmstart die gleiche Datei genommen, ist die Datei anscheinend schreibgeschützt, obwohl sie für mich nicht sichtbar ist.
Im Task-Manager taucht bei Anwendungen nichts von Excel auf, dafür aber bei den Prozessen. Dort stehen dann mehrere Excel-Prozesse.
Kille ich alle diese Excel-Prozesse starte mein Programm neu, dann funktioniert das ganze wieder, aber nur 1,2 Mal.
Dann stehen aber wieder neue Excel-Prozesse im Task-Manager.
Dazu habe ich folgendes hier im Forum einiges gefunden, daher habe ich auch diese Release-Funktion eingebaut. Doch die hilft nicht wirklich.