Excel-File erstellen und prüfen ob vorhanden

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von haVok4.Purplehaze.

    Excel-File erstellen und prüfen ob vorhanden

    Hallo Forum,

    in meinem Programm möchte ich nach Betätigung eines Buttons, dass sich der SaveFileDialog öffnet und ich ein Excel-File erstellen kann.
    Das Erstellen funktioniert soweit.

    VB.NET-Quellcode

    1. Dim SaveFileDialog As New SaveFileDialog
    2. Dim oExcel As Object
    3. Dim oBook As Object
    4. Dim oSheet As Object
    5. SaveFileDialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments
    6. SaveFileDialog.Filter = "Excel-Files (*.xls)|*.xls"
    7. SaveFileDialog.Title = "Speichern unter"
    8. If (SaveFileDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK) Then
    9. 'Start a new workbook in Excel
    10. oExcel = CreateObject("Excel.Application")
    11. oBook = oExcel.Workbooks.Add
    12. 'Add data to cells of the first worksheet in the new workbook
    13. oSheet = oBook.Worksheets(1)
    14. oSheet.Columns("A").ColumnWidth = 30
    15. oSheet.Columns("B").ColumnWidth = 50
    16. oSheet.Range("A1").Value = "Test"
    17. oSheet.Range("B1").Value = "erstellt am: " & DateTime.Now.ToString
    18. 'Save the Workbook and Quit Excel
    19. oBook.SaveAs(SaveFileDialog.FileName)
    20. oExcel.Quit()
    21. End If


    Anschließend soll er überprüfen ob die eben erstellte Datei existiert, diese öffnen und irgendwas in die Zellen schreiben und anschließend wieder schließen.
    Hintergrund ist folgender: Wenn ich das nächste Mal auf den Button drücke soll keine SaveFileDialog-Aufforderung mehr kommen, sondern in das bereits erstelle Excel-File Daten schreiben.
    Hier steh ich zur Zeit aufm Schlauch. Es gibt die FileExist-Methode, aber wie Teil ich ihm den zuvor gewählten File-Namen und den Ablagepfad mit, die der Anwender beim Erstllen des Excel-File vergeben hat?

    Ich hoffe es wurde deutlich was ich vorhabe ^^

    Gruß


    Aus den Tipps und Tricks verschoben
    -Artentus

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Artentus“ ()

    Hey,

    Dane für die Hilfe. Ich habe SaveFileDialog.FileName in einer globalen Variable (DirectorySFD) gespeichert und möchte nun an einer anderen Stelle auf die erzeugte Excel-Intanz zugreifen.

    Derzeit habe ich es nur hinbekommen, dass er mir in die Excel-Datei schreibt, wenn diese NICHT geöffnet ist. Allerdings soll es auch bei geöffneter Excel-Datei funktionieren.

    Mein Ansatz war jetzt mit GetObject und dem FileName auf die Instanz zuzugreifen, aber das macht er nicht.

    VB.NET-Quellcode

    1. Dim exApp As Excel.Application = GetObject(DirectorySFD)
    2. Dim exworkbook As Excel.Workbook
    3. Dim exsheet As Excel.Worksheet
    4. With exApp
    5. exworkbook = .Workbooks.Open(DirectorySFD)
    6. exsheet = exworkbook.Sheets(1)
    7. exsheet.Cells(1, 1) = DateTime.Now.ToString
    8. 'Save the Workbook and Quit Excel
    9. exworkbook.Save()
    10. .Quit()
    11. End With


    Gruß Timeout
    Hallo.

    Die Excel Datei würde sich zur Laufzeit eh nicht ändern, also er würde nichts reinschreiben. Erst wenn du sie schließst und wieder öffnest.

    Aber geh doch nicht diesen komplizierten Weg... Erstell einfach eine CSV Datei, das ist wesentlich einfacher und es kommt aufs Gleiche hinaus.;)

    MFG
    Purplehaze