tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
451
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    esilein esilein ist offline Mitglied
    Registriert seit
    Dec 2007
    Beiträge
    11
    Hallo zusammen,

    könnt ihr mir vielleicht helfen?

    Ich stehe vor dem Problem das ich eine Excel-Liste habe in der viele Kostenstellen stehen. Zudem setzt zu jeder Kostenstelle eine oder mehrere Abteilungen und deren Adressen.
    Nun muss ich dies irgendwie auslesen. Das Ziel ist es wenn eine Kostenstelle und eine Abteilung ausgewählt wurde die Adresse auszulesen.

    Mir persönlich ist egal wie die Datei angespeichert ist, ob als Comma-, Semikolon oder Tabsepariert oder gar als Excel.

    Ich habe es auch geschafft die Datei als Excel einzulesen:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    function TabelleAuslesen()
     
    'EXCEL-Objekt erzeugen:
        Set ExcelApp = CreateObject("excel.application")
        ExcelApp.Visible = True
        'dann das Spreadsheet laden
        Set NewMap = ExcelApp.Workbooks.Open("C:\Verzeichnis_Abteilungen.xls") 
    TabelleAuslesen = ExcelApp.Range("C6") 
     
    END function

    nur ist hier das Problem das mit jedem Aufruf Excel auch geöffnet wird und es zudem ewig braucht bis der Wert übergeben ist.
    Das zum Schluss alles als online Aktion laufen soll wäre es gut wenn das ganze in einer angemessenen Zeit reagiert.

    Hat jemand eine Idee? Zur not steht mir als Programmiersprache auch noch c# und JavaScript zur Verfügung.

    Ich hab echt keine Ahnung wie ich das am besten anstell.

    Schon mal vielen Dank für eure Antworten

    Gruß
    esilein
     

  2. #2
    ronaldh ronaldh ist offline Mitglied Brillant
    Registriert seit
    Apr 2007
    Ort
    Hannover
    Beiträge
    912
    Hallo,

    wenn Du diese Funktion für jede Zelle einzeln aufrufst, wird jedesmal Excel im Hintergrund geladen, das dauert naturgemäß ewig.

    Stattdessen solltest Du in einer Schleife alle benötigten Zellen auslesen, und dafür Excel nur einmal öffnen. Es gibt hier im Forum jede Menge Beispiele des Zugriffs auf Excel-Sheets, da solltest Du einfach erstmal suchen und Du wirst bestimmt finden.

    ronaldh
     

  3. #3
    Zvoni Zvoni ist offline Mitglied Platin
    Registriert seit
    Jul 2008
    Ort
    Hinter dem Mond gleich links
    Beiträge
    735
    Oder man benutzt folgenden Ansatz:

    1) Als Excel-Datei: Auf Daten in einer Excel-Datei kann man auch per DB-Zugriff (ADO/DAO) zugreifen
    2) Als Text-File (Semikolon, TAB-Sep): Siehe hierzu auch die Open-Anweisung.
     
    Zwei Dinge sind unendlich: Die menschliche Dummheit und das Universum, nur bei letzterem bin ich mir noch nicht sicher. - Albert Einstein

    Code vb:
    1
    
    If Beitrag.Hilfreich=True Then Bewertung.Send("Positiv")

  4. #4
    esilein esilein ist offline Mitglied
    Registriert seit
    Dec 2007
    Beiträge
    11
    Zitat Zitat von ronaldh Beitrag anzeigen
    Hallo,

    wenn Du diese Funktion für jede Zelle einzeln aufrufst, wird jedesmal Excel im Hintergrund geladen, das dauert naturgemäß ewig.

    Stattdessen solltest Du in einer Schleife alle benötigten Zellen auslesen, und dafür Excel nur einmal öffnen.
    Nunja das war nur der Versuch überhautpt eine Ausgabe hin zu bekommen. Weiter hab ich nicht probiert da ich beim versuch war eine Angabe eine relativen Pfades. Aber daran bin ich auch restlos gescheidert. Nun muss ich einen Absoluten Pfad nehmen.

    Dann such ich mal was weiter.
     

Ähnliche Themen

  1. Antworten: 20
    Letzter Beitrag: 21.02.08, 11:41
  2. Antworten: 12
    Letzter Beitrag: 22.04.07, 09:03
  3. Antworten: 4
    Letzter Beitrag: 21.03.05, 11:08
  4. Programm über eine Datei aufrufen
    Von F_P_aus_K im Forum .NET Archiv
    Antworten: 2
    Letzter Beitrag: 24.01.05, 18:00
  5. Antworten: 3
    Letzter Beitrag: 26.11.03, 23:06