Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: AC am 06.05.05 - 11:37:36

Titel: Excel: zellenformat aus LS heraus setzen
Beitrag von: AC am 06.05.05 - 11:37:36
Hallo leute, kann mir jemand helfen?

Hab hier schon im Forum einiges zum thema Notes to Excel gefunden, aber leider nichts für mein Problem,

Ich exportiere via LS Daten in ein neues leeres Excel Blatt.
Darunter auch 13 stellige EANs (Zahlen).
Excel stellt mir aber leider erstmal die Zellen im Format mit E+12 zur Verfügung. Benutzer muss dann die Zellen (Spalte) erstmal im Format händisch ändern. Ist natürlich unschön.

Frage: Kann ich im Lotus Script irgendeine Anweisung einbauen, daß die Zellen der vierten Spalte im Format Zahl ohne Nachkomma dargestellt werden sollen und nicht als Standard?. (das ganze natürlich auch auf verschiedene Excelversionen anwendbar ab Excel 97)

Alternativ könnte ich wahrscheinlich eine entsprechende Exceldatei mit der richtigen Formatierung für die vierte Spalte mir in einem RTF in einem Notesdokument hinterlegen und dann wenn der Agent (durch Benutzeraktion) läuft, die Datei lösen und dann die Daten in meine Excelvorlage pumpen.

Aber das andere würde mir besser gefallen, weils schneller ist :-))
(sowohl etwas fixer in der Ausführung als auch schnller programmiert <g>)

Kennt jemand eine gute Doku für Excel Export?

Vielen Dank. Alexander
Titel: Re: Excel: zellenformat aus LS heraus setzen
Beitrag von: Semeaphoros am 06.05.05 - 12:31:37
Wie exportierst Du denn? Ich meine, wenn Du das Format beeinflussen willst, musst Du die COM-Schnittstelle verwenden und da ist das Verwenden einer leeren Datei und das Hineingeben der Daten in diese leere Datei wahrscheinlich der einfachste Weg. Ueber COM lässt sich aber alternativ auch in einer neuen Datei das Format beeinflussen. Einen anderen Weg kenne ich nicht.
Titel: Re: Excel: zellenformat aus LS heraus setzen
Beitrag von: diali am 06.05.05 - 12:53:52
nutze doch den Macro-Recorder von Excel.

- Macro-Recorder einschalten
- Format in einer Zelle ändern
- Macro-Recorder ausschalten
- dann den Code anschauen
- nach Notes kopieren und syntaktisch anpassen
Titel: Re: Excel: zellenformat aus LS heraus setzen
Beitrag von: Semeaphoros am 06.05.05 - 13:07:03
Richtig, falls Alexander die COM-Schnittstelle benutzt, ich vermute aber, dass er das bisher nicht tut.
Titel: Re: Excel: zellenformat aus LS heraus setzen
Beitrag von: AC am 06.05.05 - 13:43:00
Erstmal danke an alle Antworter.

Mahlzeit, bin jetzt wieder da nach Mittagessen.

Das mit dem Makrorekorder, von dem Trick habe ich schon gehört aber mich noch gescheut es einzusetzen. Ich werde es dann mal probieren und sehen wieweit ich komme.

Was den Code angeht, der ist sehr dürftig bei mir eingesetzt, nur das wichtigste

   Set xlApp = CreateObject("Excel.Application")
   xlApp.Workbooks.Add
   Set xlSheet = xlApp.Workbooks(1).Worksheets(1)
   xlapp.visible = True
...
'/ dokumente holen in die dc und schleife durchlaufen
...
                xlSheet.Cells(i, 1).Value = doc.MONREA(0)
      xlSheet.Cells(i, 2).Value = doc.VFRBEA(0)
      xlSheet.Cells(i, 3).Value = doc.GROSEA(0)
      xlSheet.Cells(i,4).Value = doc.EANNEA(0)

Mehr isses nicht im Moment.
Es sind meine ersten Gehversuche mit Excelexport und das habe ich
jetzt auch nur ganz auf die ganz schnelle gemacht, weil Chefs sehr fix was im Excel gebraucht haben.

Danke, Alexander
Titel: Re: Excel: zellenformat aus LS heraus setzen
Beitrag von: Semeaphoros am 06.05.05 - 13:50:45
Da musst Du gar nicht mehr viel mehr machen, entweder Du formatierst die Zellen/Spalte noch zusätzlich, und da hilft Dir der Macro-Recorder weiter, oder Du machst das mit einer Masterdatei, wie Dus schon selber angetönt hast. Beide Wege sind vernünftig.
Titel: Re: Excel: zellenformat aus LS heraus setzen
Beitrag von: AC am 06.05.05 - 14:08:58
Hallo Experten.

Ich habs jetzt mit dem Makrorekorder probiert und es funzt.
Allerdings habe ich leider keinen Plan warum es (notesseitig) geht (reines try and error).

Dim mv1 As String
   mv1 = "D1:D" + Cstr(i+1)
   '// i ist mein dc.count

   xlSheet.Range(mv1).Select
   xlApp.Selection.NumberFormat = "0"

So hats funktioniert.

Wenn ich komplexere Dinge machen möchte, woher kenne ich die Klassen xlsheet und xlapp bzw. deren Methoden? In der Hilfe vom Notes habe ich nichts gefunden. Muß ich da in der VBA Hilfe vom Excelnachsehen?

xlSheet und xlApp muß ja irgendwie  bekannt sein, woher kommen die?

Ich oute mich hier als absoluter Neuling was diese Excelgeschichte angeht.

Grüße, Alexander
Titel: Re: Excel: zellenformat aus LS heraus setzen
Beitrag von: Semeaphoros am 06.05.05 - 14:16:44
Wenn Du Excel über COM ansprichst, ist das quasi eine Fernsteuerung von Excel, heisst, Notes weiss überhaupt nix davon, was Du tust, entsprechend musst Du solche Sachen tatsächlich in der VBA-Hilfe nachsehen
Titel: Re: Excel: zellenformat aus LS heraus setzen
Beitrag von: AC am 06.05.05 - 14:20:05
Das mit der Masterdatei, die als Excelvorlage in einem Notesdokument hängt (oder mehrerre je nach Zweck).
Hmm, funktioniert zwar auch, aber ich denke, da muß ichmehr Dinge abfangen. 
...
Set object = edoc.GetAttachment( "notesimp2.xls" )
   If Not ( object Is Nothing ) Then
      Call object.ExtractFile( "c:\btemp\notesimp2.xls" )
   End If
...

Ich brauche ja immer die Verfügbarkeit des Verzeichnisses und das kann ja von Abreitsplatz zu Arbeitsplatz differieren (hier im Beispiel c:\btemp), was dann noch dynamisch angefangen werden müsste.

hmm..
Da muß ich auch erst nochmal überlegen.

Ich könnte das zwar wieder dann über konfigurierbare persönliche Einstellungsdokumente lösen , in denen ich Pfade userbezogen abspeichere, doch dann müsste ich auch noch berücksichtigen, ob jemand am Notebook arbeitet oder grade am terminalserver und dann bekomme ich schon wieder mehrere Einstellungsoptionen pro Benutzer .

Bleibt noch das Notesverzeichnis (data) aber da schreibe ich ungern was rein. Oder ist das immer unproblematisch?

Ich seh schon. Nichts für quick and dirty Programmierung.
Gruß, Alexander

 



Titel: Re: Excel: zellenformat aus LS heraus setzen
Beitrag von: AC am 06.05.05 - 14:21:58
Wenn Du Excel über COM ansprichst, ist das quasi eine Fernsteuerung von Excel, heisst, Notes weiss überhaupt nix davon, was Du tust, entsprechend musst Du solche Sachen tatsächlich in der VBA-Hilfe nachsehen

Alles klar danke, sowas habe ich mir gedacht.
Ich werde da mal in der Hiulfe stöbern udn weiter mich versuchen.
Grüße, Alexander