Autor Thema: Befehle für einen formatierten Excel-Export  (Gelesen 17848 mal)

Offline Catrex

  • Junior Mitglied
  • **
  • Beiträge: 78
  • Geschlecht: Männlich
  • Noob@Work
Befehle für einen formatierten Excel-Export
« am: 15.06.04 - 14:26:38 »
Hallo,


ich habe mal eine Frage. Und zwar habe ich hier mal wieder einen Excel-Export. Nur das dieser diesmal auch soweit noch formatiert werden soll, das hinterher ein druckbaren "Einheitsformular" rauskommt.
 
Also Sachen wie: Spaltenbreite, Summen bilden, Textausrichtung usw.

Nun habe ich mir schon ein paar Gedanken gemacht wie ich das denn wohl realisieren könnte. Zum einen gäbe es ja die Möglichkeit das per Excel-Makro zu machen, aber dann bräuchte jede Person die mit dem Export arbeitet ja auch eine "Muster-Excel-Datei" damt Makro. Die andere Möglichkeit ist dieses komplett per Lotus-Script zu regeln. Und genau da ist der Haken. Ich finde im Internet keine Auflistung der möglichen Befehle für Excel. Deshalb wollte ich wissen ob ihr vielleicht wisst wo ich sowas finden kann.

Noch eine andere Frage, ich sprach oben von einer "Muster-Excel-Datei". Kann ich im Script denn auch sagen das "er" genau diese Datei lokal auf dem Rechner des jeweiligen öffnen soll ? Weil sonst müsste man ja mit Strg+C und Strg+V arbeiten, oder ?

Wäre euch sehr dankbar wenn einer einen Tipp hätte !

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Befehle für einen formatierten Excel-Export
« Antwort #1 am: 15.06.04 - 14:50:50 »
...Ich finde im Internet keine Auflistung der möglichen Befehle für Excel. Deshalb wollte ich wissen ob ihr vielleicht wisst wo ich sowas finden kann.

Hi,

du kannst dir die entsprechenden Anweisungen aus der VBA-Hilfe holen und nach LotusScript portieren. Oder du zeichnest dir in Excel das Makro für die Formatierung auf und übernimmst es nach Notes. Geht aber leider nicht 1zu1.

Hier mal ein Beispiel, die gesamte Tabelle wird mit Arial 10 formatiert:

...
Set objExcel = CreateObject("Excel.Application")
Call objExcel.Workbooks.Add  'Neue Arbeitsmappe anlegen
Set objSheet = objExcel.ActiveWorkbook.Worksheets(1)

objSheet.Cells.Select  'Gesamtes Arbeitsblatt markieren
objExcel.Selection.Font.Name = "Arial"  'Schriftart
objExcel.Selection.Font.Size  = 10  'Zeichengrösse setzen
objSheet.Range("A1").Select          
...


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

Offline Catrex

  • Junior Mitglied
  • **
  • Beiträge: 78
  • Geschlecht: Männlich
  • Noob@Work
Re:Befehle für einen formatierten Excel-Export
« Antwort #2 am: 15.06.04 - 15:09:31 »
mmh, ja den "Trick" habe ich auch ausprobiert. Also das mit dem Makro aufzeichen und dann in VBA Editor die Sachen rauskopieren. Eigentlich ganz nett aber interessant wird es ja bei den Befehlen die ich nicht eins zu ein übernehmen kann. z.B Textausrichtung oben oder so. Was mach ich denn dann mit den Kammeraden ?


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Befehle für einen formatierten Excel-Export
« Antwort #3 am: 15.06.04 - 15:19:32 »
Ich glaube, Du hast Axel missverstanden. In der Hilfe des VBA-Editors findest Du alle Klassen und Methoden von Excel-VBA, und diese kannst Du in LS einfach weiter verwenden. Axel hat dazu ja bereits ein Beispiel aufgemalt: Hast Du einmal ein Excel-Object in LS instantiiert, kannst Du wie in VBA weiterarbeiten.

Bernhard

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Befehle für einen formatierten Excel-Export
« Antwort #4 am: 15.06.04 - 15:28:18 »
Eigentlich ganz nett aber interessant wird es ja bei den Befehlen die ich nicht eins zu ein übernehmen kann. z.B Textausrichtung oben oder so. Was mach ich denn dann mit den Kammeraden ?


Schau dir das Beispiel an und vergleiche es mit der VBA-Hilfe oder dem Code in einem Makro. Wenn du erstmal das Prinzip verstanden hast, dann klappt auch mit den anderen Kameraden.  ;)

Hier noch ein Beispiel:

...

'Konstanten für die vertikale Ausrichtung innerhalb der Zellen
Const xlVAlignTop = -4160
Const xlVAlignBottom = -4107
Const xlVAlignCenter = -4108

'Formatiert ein Arbeitsblatt mit den Attributen vertikale Textausrichtung oben und
'optimale Spaltenbreite
objSheet.Cells.Select  'Gesamtes Arbeitsblatt markieren
objExcel.Selection.VerticalAlignment = xlVAlignTop  'Vertikale Ausrichtung nach oben
objExcel.Selection.Columns.AutoFit  'Optimale Spaltenbreite
objExcel.Selection.Rows.AutoFit  'Optimale Zeilenhöhe
objSheet.Range("A1").Select          
...


In der Regel ist es so, dass alles was mit Formatierung zu tun hat, sich auf Selection beziehen.


Axel

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

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Befehle für einen formatierten Excel-Export
« Antwort #5 am: 15.06.04 - 23:03:33 »
Was hier immer wieder gefragt wird: Wo finde ich die Excel-Konstanten?

Antwort siehe:
http://www.atnotes.de/index.php?board=7;action=display;threadid=8479

Kannst Dir auch mal eine Demo-Datenbank downloaden, hier werden View-Dokumente nach Excel exportiert:
http://www.atnotes.de/index.php?board=9;action=display;threadid=15203
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline Markus Henke

  • Aktives Mitglied
  • ***
  • Beiträge: 143
  • Geschlecht: Männlich
Re:Befehle für einen formatierten Excel-Export
« Antwort #6 am: 16.06.04 - 07:45:16 »
Alternativ kannst Du auch eine Tabelle vorformatieren und dann in ein Setup-Dokument in die DB anhängen. Vor dem Export löst Du die Datei dann und schreibst die Werte in die formatierte Tabelle.

Das ganze hat den Charme, dass Du dann auch ein Makro in die Tabelle einfügen kannst, dass Du dann nach dem Export aufrufst und anschließend löschst.

Ich habe mit dem Vorgehen sehr gute Erfahrungen gemacht.

Markus

Offline Catrex

  • Junior Mitglied
  • **
  • Beiträge: 78
  • Geschlecht: Männlich
  • Noob@Work
Re:Befehle für einen formatierten Excel-Export
« Antwort #7 am: 16.06.04 - 09:53:16 »
Ja zunächst einmal danke für die Antworten. Ich werde mal sehen was ich noch so machen kann und werde mich bei Bedarf dann hier wieder zu Wort melden.

@Makrus:

Ja das wäre auch die "Notlösung" zu der ich dann ausweichen würde !


Also nochmal danke !

Offline Markus Henke

  • Aktives Mitglied
  • ***
  • Beiträge: 143
  • Geschlecht: Männlich
Re:Befehle für einen formatierten Excel-Export
« Antwort #8 am: 16.06.04 - 10:57:36 »
Notlösung? Ich finde das eigentlich die schönste Lösung, weil man sich durch die Formatierung und das Makro nicht damit rumschlagen muss, wie man das ganze sauber hinbekommt. Aber ich glaube da hat jeder seine eigenen Vorstellungen.  ;)

Offline g202e

  • Senior Mitglied
  • ****
  • Beiträge: 361
  • Geschlecht: Männlich
  • Was nicht tötet, härtet ab!
Re:Befehle für einen formatierten Excel-Export
« Antwort #9 am: 16.06.04 - 11:15:17 »
Das ganze hat den Charme, dass Du dann auch ein Makro in die Tabelle einfügen kannst, dass Du dann nach dem Export aufrufst und anschließend löschst.
Kannst du das ein wenig genauer beschreiben?
Makro in der Vorlage ist einleuchtend, aber wie löschst du das dann?
Domino 5.0.11/LN 5.011(german)/NT4 + SP6a

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Befehle für einen formatierten Excel-Export
« Antwort #10 am: 16.06.04 - 11:19:56 »
Ja das wäre auch die "Notlösung" zu der ich dann ausweichen würde !

Ich empfinde das auch nicht unbedingt als Notlösung. Diese Vorgehensweise hat sogar in einigen Anwendungsfällen Vorteile.

Kleine Formatierungen kann man ohne weiteres mit Lotusscript durchführen. Umfangreicheres würde ich auf jeden Fall auch in Excel selbst mit einem Makro machen.


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

Offline Catrex

  • Junior Mitglied
  • **
  • Beiträge: 78
  • Geschlecht: Männlich
  • Noob@Work
Re:Befehle für einen formatierten Excel-Export
« Antwort #11 am: 16.06.04 - 11:51:39 »
Ok ok. Ich ziehe das mit der Notlösung zurück. Dann würde ich mich aber freuen wenn einer das ein wenig ausschmücken könnte wie man da genau vorgeht.

Sorry wenn ich einem auf die Füsse getreten bin  :P

Offline Markus Henke

  • Aktives Mitglied
  • ***
  • Beiträge: 143
  • Geschlecht: Männlich
Re:Befehle für einen formatierten Excel-Export
« Antwort #12 am: 16.06.04 - 11:54:10 »
Also Makros löschen geht so (Codeschnipsel aus meiner Excel-Klasse):


'Zuerst die Codezeilen löschen
For i = Me.xlApp.ActiveWorkbook.VBProject.VBComponents.Count To 1 Step -1
      
l = 1         
l = Me.xlApp.ActiveWorkbook.VBProject.VBComponents(i).CodeModule.CountOfLines
Me.xlApp.ActiveWorkbook.VBProject.VBComponents(i).CodeModule.DeleteLines 1, l
         
Next
      
'dann die Module löschen
For i = Me.xlApp.ActiveWorkbook.VBProject.VBComponents.Count To 1 Step -1
         
Me.xlApp.ActiveWorkbook.VBProject.VBComponents.Remove(Me.xlApp.ActiveWorkbook.VBProject.VBComponents(i))
         
Next   


Wie gesagt, es ist ein Schnispel aus meiner Excel-Klasse. Ich wollte hier auch nur zeigen welche Befehle genommen werden müssen und wie das Vorgehen aussieht.

Markus

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Befehle für einen formatierten Excel-Export
« Antwort #13 am: 16.06.04 - 12:23:35 »
Sorry wenn ich einem auf die Füsse getreten bin  :P


Du bist hier niemanden auf die Füsse getreten. Das ist eine ganz normale Diskussion und Vor- und Nachteile von Lösungen.

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

Offline g202e

  • Senior Mitglied
  • ****
  • Beiträge: 361
  • Geschlecht: Männlich
  • Was nicht tötet, härtet ab!
Re:Befehle für einen formatierten Excel-Export
« Antwort #14 am: 16.06.04 - 13:55:49 »
(Codeschnipsel aus meiner Excel-Klasse):


Wo gibt's diese Excel-Klasse?
Domino 5.0.11/LN 5.011(german)/NT4 + SP6a

Offline Markus Henke

  • Aktives Mitglied
  • ***
  • Beiträge: 143
  • Geschlecht: Männlich
Re:Befehle für einen formatierten Excel-Export
« Antwort #15 am: 16.06.04 - 15:29:11 »
Die gibts in meinen Datenbanken. ;-)

Aber such mal im Sandkasten oder bei OpenNTF.ofg, da findest Du bestimmt was ähnliches.

Markus

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Befehle für einen formatierten Excel-Export
« Antwort #16 am: 16.06.04 - 16:09:35 »
Hi,

da Markus seinen Code nicht mit uns teilen möchte (warum auch immer), kann ich dir mit meiner Klasse vielleicht auch helfen. Sie ist allerdings bei weitem noch nicht vollständig und wahrscheinlich noch nicht 100% fehlerfrei bzw. optimiert. Ich bitte daher um Nachsicht.

Anwendungsbeispiel (Agent):

(Options)
Use "libExcel"


Sub Initialize

...   
Dim oExcel As cExcel    

...

Set oExcel = New cExcel  'Erstellen eines OLE-Objects
Call oExcel.NewWorkbook
      
Call oExcel.SetCellValue("A1", "RB")
Call oExcel.SetCellValue("B1", "Land")

...

Call oExcel.FormatBereichAsText("A", "B" )      

...

row = 2

Set doc = collection.GetFirstDocument
While Not (doc Is Nothing)
   
   Call oExcel.SetCellValue("A" & Trim$(Str$(row)), doc.RegBereich(0))
   Call oExcel.SetCellValue("B" & Trim$(Str$(row)), doc.Land(0))
...
   Set doc = collection.GetNextDocument(doc)
   row = row + 1
Wend  'While Not (doc Is Nothing)
      
'Abschließende Formatierungen
Call oExcel.SortTable
Call oExcel.FormatBereichAsWaehrung("F","G")
Call oExcel.FormatBereichAsDateShort("I", "I" )
Call oExcel.FormatRangeFont("Arial", 9)
Call oExcel.FormatRowCenterBold(1)
Call oExcel.FormatRangeAlignment
Call oExcel.FormatRangeWidth("K:K")
      
'Aktivieren und Anzeigen von Excel      
Call oExcel.SetVisible
Call oExcel.ActivateExcel
...

Ich hoffe du kannst was damit anfangen.


Axel


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

Offline Markus Henke

  • Aktives Mitglied
  • ***
  • Beiträge: 143
  • Geschlecht: Männlich
Re:Befehle für einen formatierten Excel-Export
« Antwort #17 am: 17.06.04 - 08:38:20 »
@Axel: Es hat einen einfachen Grund, warum ich den Code nicht teilen kann. Es ist nicht meiner. Im Gegensatz zu einigen hier im Forum bin ich nicht selbstständig, also gehört der Code den ich schreibe dem Unternehmen für das ich arbeite. Außerdem benutze ich hier keinen Nickname, sondern meinen echten Namen und ich hab keinen Bock Ärger zubekommen, weil ich Firmeneigentum weitergebe. Wenn andere Forumsmitglieder das anders halten ist das ihre Sache. :-)

Gruß
Markus

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Befehle für einen formatierten Excel-Export
« Antwort #18 am: 17.06.04 - 09:16:04 »
Hi,

eine kleiner Hinweis, warum du den Code nicht weitergeben kannst, hätte keine Mißverständnisse ausgelöst. In der Regel lassen alle Forumsmitglieder die anderen an ihrem Code teilhaben.

Wenn du das aus rechtlicher Sicht nicht kannst, wofür sicherlich jeder Verständnis hat, hätte ein kurzer Hinweis genügt. So kam es rüber, als das du nicht willst.


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

Offline g202e

  • Senior Mitglied
  • ****
  • Beiträge: 361
  • Geschlecht: Männlich
  • Was nicht tötet, härtet ab!
Re:Befehle für einen formatierten Excel-Export
« Antwort #19 am: 17.06.04 - 11:18:08 »
@Axel: Danke für deinen Code. (Den hatte ich übrigens schon gefunden)
@Markus: Klar, dass du den Code nicht rausgibst, wenn er der Firma gehört!
Weil es gerade so schön passt: Ich exportiere mehrere Dokumente (bzw. Daten aus diesen Dokumenten) nach Excel, um diese dann (schön formatiert) in Tabellenform auszudrucken. Gibt es eine Möglichkeit, diesen Druck "aus der Exportfunktion" zu starten, ohne Excel überhaupt sichtbar zu machen?
Also: Man wählt die zu exportierenden Doks, klickt auf den Buhtong, welcher den Export anstößt und danach wird die Excel-Tabelle sofort an den Drucker weitergeleitet.
Mir fällt da im Moment nichts ein und SuFu half mir auch nicht.
Domino 5.0.11/LN 5.011(german)/NT4 + SP6a

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz