Autor Thema: Zugriff auf Excel Datei  (Gelesen 6330 mal)

Offline vbis

  • Frischling
  • *
  • Beiträge: 23
Zugriff auf Excel Datei
« am: 09.06.09 - 14:59:34 »
Hallo zusammen,

ich würde gerne aus Notes heraus auf eine Excel Datei (z.B. im csv-Format) zugreifen.
Leider weiß ich nicht genau, wie dies zu machen ist und was alles zu beachten ist.

Geht es evtl. mit der Funktion @DBColumn ?

Ich stelle mir dies als eine Art Live Zugriff auf diese Datei vor.
Anhand einer Kundennummer die eingegeben wird, werden andere Felder automatisch anhand der gefundenen Kundennummer aus der Tabelle ergänzt.

Es wäre schön wenn ich hier Tipps kriegen könnte, wie ich dies am besten Umsetzen kann, da ich soetwas noch nicht gemacht habe.

Vielen Dank für Eure Hilfe
thomas

Offline Ozan

  • Senior Mitglied
  • ****
  • Beiträge: 277
Re: Zugriff auf Excel Datei
« Antwort #1 am: 09.06.09 - 15:13:49 »
Hallo,

hmm, das kann ich dir nicht sagen, aber ich könnte dir eine Agent anbieten der die Daten in die NSF importiert, dann kannst du problemlos mit @DBColumn arbeiten.

Sub Initialize
 Dim db As NotesDatabase
 Dim doc As NotesDocument
 Dim field(1 To 2) As String 'gesamt Anzahl der Felder in der csv angeben
 Dim session As New NotesSession
 Dim sentence As String
 Set db = session.CurrentDatabase
   
 Open "c:\input.csv" For Input As #1
   
  While Not Eof(1)
   Line Input #1, sentence
   For i = 1 To 2 'gesamt Anzahl der Felder in der csv angeben
    field(i) = ""
   Next i
  fieldnr = 1
  For i = 1 To Len(sentence)
   If Mid(sentence, i, 1) = ";" Then fieldnr = fieldnr + 1 Else field(fieldnr) = field(fieldnr) + Mid(sentence, i, 1)
  Next i
  For i = 1 To 2 'gesamt Anzahl der Felder in der csv angeben
   field(i) = Replace(field(i),Chr(34),"")
  Next i
  Set doc = New NotesDocument( db )

  doc.Form = "Person"
  doc.Name=field(1)
'......      

 Call doc.Save(True,True)
 Wend    
Close #1
End Sub
« Letzte Änderung: 09.06.09 - 15:20:29 von Ozan »

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Zugriff auf Excel Datei
« Antwort #2 am: 09.06.09 - 15:21:15 »
Hallo,

Man kann auf die CSV-Datei zugreifen oder aber auch auf die Excel-Datei direkt.

Hierzu kannst Du die COM-Schnittstelle Verwenden. (vorausgesetzt Excel ist auf dem Rechner auch installiert).

@Ozan
Wie wuerde in Deinem Script eine CSV-Datei importiert, die folgenden Aufbau hat,
Wert1;Wert2;Wert3;Wert4;...;Wertx

Andreas

Offline Ozan

  • Senior Mitglied
  • ****
  • Beiträge: 277
Re: Zugriff auf Excel Datei
« Antwort #3 am: 09.06.09 - 15:27:58 »
über die Feldnummerierung:
doc.Name=field(1)
doc.Vorname=field(n)

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Zugriff auf Excel Datei
« Antwort #4 am: 09.06.09 - 15:31:18 »
Strasse, PLZ, Ort, ... ???

Offline Ozan

  • Senior Mitglied
  • ****
  • Beiträge: 277
Re: Zugriff auf Excel Datei
« Antwort #5 am: 09.06.09 - 15:34:29 »
verstehe nicht... in der csv sind doch alle spalten untereinander, somit ist z.b. field(5) immer Strasse, oder habe ich etwas falsch verstanden? Jenachdem wie die csv Aufbau ist muss man alle Felder die importiert werden mit angeben.

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Zugriff auf Excel Datei
« Antwort #6 am: 09.06.09 - 15:37:47 »
Eben nicht immer.

Excel-Tabelle
1. Spalte=Name
2. Spalte=Vorname
3. Spalte=eMail
4. Spalte=Strasse
5.Spalte=PLZ
...

Speicherst Du nun die Datei als CSV hast Du genau meinen beschriebenen Aufbau der Datei und Dein Script wuerde Probleme bekommen.

Andreas

Offline vbis

  • Frischling
  • *
  • Beiträge: 23
Re: Zugriff auf Excel Datei
« Antwort #7 am: 09.06.09 - 15:44:20 »
Interessant wäre für mich wirklich ein Live Zugriff, da die Excel-Datei dann nur bei Aktualisierung ausgetauscht werden müsste (natürlich dann nach gleichem Aufbau der Datei nur mit aktuellen Datensätzen) und schon hätte man wieder aktuelle Daten.

@ascabg:
So ähnlich wie von dir beschrieben würde die Excel-Datei aussehen. Richtig.
Bisher ist Excel auf dem Server nicht installiert ...
Wie würde es denn dann theoretisch mit der COM-Schnittstelle funktionieren ?

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Zugriff auf Excel Datei
« Antwort #8 am: 09.06.09 - 15:49:11 »
Hi,

Willst Du den Zugriff (wie auch immer) manuell anstossen oder soll es automatisch (periodisch) erfolgen?

Wenn manuell, dass muss auf dem Rechner, auf dem Du dieses ausfuehren moechtest, Excel installiert sein.

@Ozan
Hier noch zwei kleine Screen-Shots.


Andreas

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Zugriff auf Excel Datei
« Antwort #9 am: 09.06.09 - 15:57:11 »
@vbis

Eventuell hilft Dir dieses hier schon ein wenig weiter.

Excel-Import

Andreas

Offline Ozan

  • Senior Mitglied
  • ****
  • Beiträge: 277
Re: Zugriff auf Excel Datei
« Antwort #10 am: 09.06.09 - 15:57:31 »
@ascabg

diese Test Datei würde problemlos mit der Agent importiert, mach doch mal nen Text.nsf und importiere die doch einfach.

Das noch anpassen:

doc.name=field(1)
doc.vorname=field(2)
doc.email=field(3)
doc.strasse=field(4)
doc.plz=field(5)
doc.ort=field(6)

und

gesamt Anzahl der Felder in der csv angeben entsprechend anpassen in deinem Fall auf die 6.

Sorry eben plz übersehen.
« Letzte Änderung: 09.06.09 - 16:05:24 von Ozan »

Offline vbis

  • Frischling
  • *
  • Beiträge: 23
Re: Zugriff auf Excel Datei
« Antwort #11 am: 09.06.09 - 15:59:01 »
Anhand der Eindeutigen Kundennummer, die man in der Notesdatenbank eingibt, sollen weitere Felder wie Name, Vorname, Telefonnummer etc. anhand der Daten aus der Excel Datei zu dieser Kundennummer (welcher Dateityp auch immer ... csv, xls ganz egal) gefüllt werden ....

Von daher sollte alles sowie der Zugriff komplett automatisch sein, sobald ein neues Dokument erstellt wird und die Kundennummer eingegeben wird.

Ich hoffe du verstehst wie ich das meine =)

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Zugriff auf Excel Datei
« Antwort #12 am: 09.06.09 - 16:13:07 »
Hi

Ich verstehe schon was Du meinst.

Jedoch wuerde ich in einem solchen Fall dazu tendieren, die Daten in einer zweiten Db zu lagern und mittels den Bordmitteln von Notes (@DbLookup; @DbColumn) die Daten aus dieser zweiten Db auszulesen (koennte auch dieselbe Db sein).

Die Daten der Kunden koennten dann in regelmaessigen Abstaenden mit den aktuellen Daten aus einer Excel/CSV-Datei abgeglichen werden. (Neu, Aktualisieren, Loeschen)


Andreas

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Zugriff auf Excel Datei
« Antwort #13 am: 09.06.09 - 18:39:10 »
Jedoch wuerde ich in einem solchen Fall dazu tendieren, die Daten in einer zweiten Db zu lagern und mittels den Bordmitteln von Notes (@DbLookup; @DbColumn) die Daten aus dieser zweiten Db auszulesen (koennte auch dieselbe Db sein).

Sehe ich genauso. Alles andere ist eine Krückenlösung, die irgendwann zu Problemen führen kann.

Woher kommt denn die csv-Datei? Eventuell kann die Pflege der Kundenstammdaten auch direkt in Notes erfolgen und stehen so für weitere Vorgänge, z.B. Mail schreiben, zur Verfügung.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline vbis

  • Frischling
  • *
  • Beiträge: 23
Re: Zugriff auf Excel Datei
« Antwort #14 am: 11.06.09 - 11:53:59 »
Hi

Ich verstehe schon was Du meinst.

Jedoch wuerde ich in einem solchen Fall dazu tendieren, die Daten in einer zweiten Db zu lagern und mittels den Bordmitteln von Notes (@DbLookup; @DbColumn) die Daten aus dieser zweiten Db auszulesen (koennte auch dieselbe Db sein).

Andreas
Genauso machen wir es im Moment auch. Die Daten werden in gewissen Abständen aus einer *.dbf Datei in eine weitere NotesDatenbank importiert.
Der Gedanke war nur, diesen import nicht mehr zu benötigen und noch aktuellere Daten via LiveZugriff zu haben.

@Axel:
Die Daten für den Import kommen derzeit aus einem gesonderten Programm.

Offline Gandhi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 918
  • Geschlecht: Männlich
  • Domino for the masses
Re: Zugriff auf Excel Datei
« Antwort #15 am: 16.06.09 - 16:13:13 »
Wenn auf die DB live zugegriffen werden soll - und dann auch noch mit @DB... Methoden, gibt es noch die Möglichkeit die Excel Datei als DSN (File, User, ...) anzulegen und dann per ODBC darauf zuzugreifen.
Generell eignet sich Excel nach meinem Geschmack für sowas aber nicht.
Der "Wenn ich" und der "Hätt' ich" das sind zwei arme Leut'
oder für den Süden:
Hatti Tatti Wari - san drei Larifari

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Zugriff auf Excel Datei
« Antwort #16 am: 16.06.09 - 16:26:28 »
DBF ist doch eigentlich kein Excel Format, sondern Dbase?

Was steckt da jetzt wirklich dahinter?
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Zugriff auf Excel Datei
« Antwort #17 am: 19.06.09 - 22:52:53 »
Wir verwenden für sowas ADO. Es gibt dafür auch einen Exceltreiber, welcher (meistens) funktioniert. Sind die Tabellen schlampig, dann klappt es nicht.
-> http://lemming.name/?p=504

Gruß
Roland
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz