Announcement

Collapse
No announcement yet.

Fehler bei Zugriff auf Excel

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Fehler bei Zugriff auf Excel

    Hallo zusammen,
    Ich bin VB.net-Neuling und stehe vor einem Problem:
    Ich arbeite mit Office 2003 und Vb.net 2003, framework1.1)

    Ein Teil meiner Aufgabe ( meines Programmes) soll sein

    1.eine bereits gefüllte Exceltabelle per Buttonclick zu öffnen
    2.Aus dieser Tabelle Daten auszulesen und damit zu arbeiten

    Was muss ich alles einbinden um mit Excel arbeiten zu können?
    1.Der Verweis: Object Library 5.0 habe ich eingebunden (es gibt auch 11.0?!?)

    Brauche ich noch andere Verweis? (z.B. Office)

    Benötige ich noch Klassen? namespace ? etc.??

    Und wie erzeuge ich eine "Objektvariable"?? ( xlMap = New Excel.Application geht komischerweise nicht, er erkennt Excel.Application nur an wenn kein New davor steht)

    Ein Beispiel wäre net, denn mir fehlt im Moment noch der Überblick in Vb.net.

    Danke schonma,
    rousseau

  • #2
    Hi, das müßte alles erklären:

    [highlight=vbnet]Imports System.Runtime.InteropServices
    Imports Microsoft.Office.Interop.excel
    Imports System.IO
    Imports System.IO.Directory
    Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim oFile As OpenFileDialog = New OpenFileDialog
    Dim dat As String
    Dim dateien As ArrayList = New ArrayList
    With oFile
    .Multiselect = True
    .Filter = "Excel Dateien (*.xls)|*.xls"
    .FilterIndex = 1
    .RestoreDirectory = True
    If .ShowDialog() = System.Windows.Forms.DialogResult.OK Then
    'import_stream = .OpenFile()
    'export_filename = convert_export_path(.FileName())
    For Each dat In .FileNames()
    dateien.Add(dat)
    Next

    End If
    End With

    'drucken
    Dim oMissing As Object = System.Reflection.Missing.Value
    Dim oFalse As Object = False
    Dim wApp As ApplicationClass = New ApplicationClass()

    For Each dat In dateien
    Dim docName As Object = dat
    Dim doc = wApp.Workbooks.Open(docName, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing)
    'wApp.ActiveSheet.printout()
    wApp.ActiveWorkbook.PrintOutEx()
    wApp.ActiveWorkbook.Close(oFalse, oMissing, oMissing)
    System.Threading.Thread.Sleep(5000)
    Next
    wApp.Quit()
    End Sub
    End Class
    [/highlight]

    Einzig was mehr ist, ich nutze den CommonDlg für das Datei öffnen!

    Gruss Alex

    Comment


    • #3
      Dankeschön, der Code hat (fast) auf Anhieb funktioniert.
      Dummerweise löst das mein Problem noch nicht. Damit kann ich ja trotz alle dem nicht auf das geöffnete ExcelSheet zugreifen.
      Das Problem is das ich kein "excel-Objekt" erzeugen kann. Das müsste doch eigentlich so gehen:
      Dim xlApp As excel.Appliktion
      xlApp = New Excel.Aplliktion
      ...
      Oder?

      Er erkennt dieses "excel.Appliktion" nicht und somit hab ich wenn ich richtig informiert bin auch keine Möglichkeit auf einzelne Zellen,Spalten etc. zugreifen zu können.

      Weitere gewünschte Funktionen sind:
      -Öffnen des Excelsheets (sichtbar)
      -Auslesen von Werten
      -Schliessen
      -etc.
      Die Funktionen hab ich auch schon alle gefunden, es hängt meiner Meinung wohl nur an der Erzeugung dieses "Excel-Object"... oder bin ich da auf dem holzweg?
      Also was fehlt mir damit ich "vollen Zugriff" auf Excel hab?

      gruß rousseau

      Comment


      • #4
        Hallo,

        probiere mal bitte den Code aus und gib mal Rückmeldung:

        http://dotnet-snippets.de/dns/vbnet-...et-SID865.aspx

        Gruss Alex

        Comment


        • #5
          Sehr schön!! Funktioniert sehr gut...
          Vielen Dank,sehr hilfreich!

          gruß rousseau

          Comment

          Working...
          X